大家好!
自己用STM32F103ZE 做了块板,打算在程序运行中设置几个参数到内部Flash的最后一页(地址0x08000000+2048*255 ),然后下次开机时再将这几个参数读出来。
使用SW在进行写接口将程序下载后,一切正常。但是只要重启单片机,即发生死机现象。从Debug中跟踪到操作前进行擦除页的工作后,发生这种现象。
考虑到我在程序中开了多个中断,包括定时器和串口中断,所以认为是中断影响了擦除,因此执行了擦除前关中断及擦除后开中断的操作。试验了__set_PRIMASK(1)和__set_PRIMASK(0)
以及__disable_irq() 和__enable_irq() ,但是都没有效果。
哪位大神如果遇到过此类问题,请指出该如何解决这个问题?我是用的是Keil5.23。
谢谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
Mode = *(u16*)(FLASH_START_ADDR+2); //第二个存储单元为操作模式
LowerLimit=*(u16*)(FLASH_START_ADDR+4); //第三个存储单元为位置下限
UpperLimit=*(u16*)(FLASH_START_ADDR+6); //第四个存储单元为位置上限
一周热门 更多>