stm32的flash操作注意事项
从STM32编程手册中,可以知道:在进行写或擦除操作时,不能进行代码或数据的读取操作。
比如:你在写Flash期间有接收串口数据,很有可能会丢串口数据。
因为比较耗时,所以,在写数据时,CPU不会执行其他操作。
简单说:在写Flash时,CPU 不能取指令,导致中断得不到及时响应,从而发生接收到的数据未及时读走而被覆盖的现象。
遇到这种情况,解决的办法:使用DMA。DMA不需要CPU干预,一旦 USART 有数据接收到,由 DMA 负责将其传输至循环缓冲区中。软件定期检测循环缓冲区中是否有接收到的数据,如果有则加以处理。
提示:
如果你的代码会反复读Flash,建议使用外部Flash。
转载自:strongerHuang