完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
在之前的项目中使用定时器来模拟pwm输出,当我们在向flush写入数据的时候发现输出的pwm不完整。
网上查阅资料了解到,当我们在写flush的时候是不能从里面读取代码的,而我们的程序是放在flush里面的,自然我们的中断服务函数里面的代码自然也是放在flush里面的,当我们在对flush写入数据的时候,虽然此时发生了定时中断,可是我们无法从flush里面调用中断服务程序的代码,因此才导致我们输出的pwm波形不完整。 官方文档PM0042《STM32F10xxx闪存编程手册.en》,在Page11中有一段话很重要: During a write operation to the Flash memory, any attempt to read the Flash memory will stall the bus. The read operation will proceed correctly once the write operation has completed. This means that code or data fetches cannot be made while a write/erase operation is ongoing. For write and erase operations on the Flash memory (write/erase), the internal RC oscillator (HSI) must be ON. The Flash memory can be programmed and erased using in-circuit programming and in- application programming. 中文翻译第一段话:在Flash写入操作过程中,任何试图读取Flash的操作都会锁定住总线,在完成Flash写操作之后读取Flash操作会继续执行,这意味着写入Flash期间无法访问Flash中的代码和数据。 这段话让人茅塞顿开,也就是在写入数据到Flash中去的时候无法读取flash中保存的任何数据,包括代码和常量,所以当在写入flash数据的时候如果发生了串口中断的话系统是无法执行中断服务代码的。如果长时间无法执行中断服务代码就会导致数据丢失(写入一个页的数据使用的时长太长了)。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 23:28 , Processed in 0.588200 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号