STM32F103C8内部FLASH当EEPORM尝试擦除或者写入时就会死机

2019-07-14 14:45发布

在调试STM32F103C8内部FLASH当EEPORM使用时,一直没调通,求助友们;调了好几天没调通,读取指定位置没有问题,但是尝试擦除或者写入时就会死机,就是程序执行擦除FLASH_ErasePage()或者写入FLASH_ProgramHalfWord()这句时就会死机。把看门狗打看可以看到只要程序执行到擦除或者写入函数时就死机。再细致发现执行写入函数这一句*(__IO uint16_t*)baseaddr =就会死机,只要把这句*(__IO uint16_t*)baseaddr =删除跳过这一句就不会死机。求大家相助,谢谢,
[tr]我把函简化成下面,就是会死机,万分求助
void FLASHINIT_FLASH(void)
{
FLASH_Unlock();//解锁
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清除标志位
FLASH_ErasePage(0x08002a50);//要擦出页的起始地址
FLASH_ProgramWord(0x08002a50,0x1234);//写数据
//是一个字即四个字节
FLASH_Lock();//锁定
}
[/tr]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
xinxin52717
1楼-- · 2019-07-15 10:31
 精彩回答 2  元偷偷看……
ctwewer
2楼-- · 2019-07-15 11:54
ST官方有代码可以参考呀
zhouxk
3楼-- · 2019-07-15 15:25
请参考10楼附件,Flash模拟EEPROM用过很多回,从来没有出过问题。
楼主你的程序工程呢,发上来看看。
0x2a52的地址不算大,才10K,STM32程序和有初始化值的数据占个10K不是什么难事,生成bin文件看一下,超过了没有。
csw_ying
4楼-- · 2019-07-15 16:39
楼主去看看正点原子的407板子的程序,  实验34 FLASH模拟EEPROM实验  这里有详细的解答。对比你的程序看
cnm7
5楼-- · 2019-07-15 21:51
检查地址,参数,找个类似例程参考下,也可换个地址位尝试修改参数
Aidaohuakai
6楼-- · 2019-07-16 01:59
 精彩回答 2  元偷偷看……

一周热门 更多>