STM32F103ZE 擦除内部Flash后,复位死机

2019-08-14 02:47发布

大家好!
自己用STM32F103ZE 做了块板,打算在程序运行中设置几个参数到内部Flash的最后一页(地址0x08000000+2048*255 ),然后下次开机时再将这几个参数读出来。
使用SW在进行写接口将程序下载后,一切正常。但是只要重启单片机,即发生死机现象。从Debug中跟踪到操作前进行擦除页的工作后,发生这种现象。
考虑到我在程序中开了多个中断,包括定时器和串口中断,所以认为是中断影响了擦除,因此执行了擦除前关中断及擦除后开中断的操作。试验了__set_PRIMASK(1)和__set_PRIMASK(0)
以及__disable_irq() 和__enable_irq() ,但是都没有效果。

哪位大神如果遇到过此类问题,请指出该如何解决这个问题?我是用的是Keil5.23。

谢谢了!
       
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
xlong_06
1楼-- · 2019-08-14 06:36
你有没有试过是不是你的读flash的程序出问题造成的死机呀!
bluebird45
2楼-- · 2019-08-14 11:38
读也能造成死机吗?
Mode = *(u16*)(FLASH_START_ADDR+2);                //第二个存储单元为操作模式
LowerLimit=*(u16*)(FLASH_START_ADDR+4);        //第三个存储单元为位置下限
UpperLimit=*(u16*)(FLASH_START_ADDR+6);        //第四个存储单元为位置上限

一周热门 更多>