打印
[其他ST产品]

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

[复制链接]
891|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2023-9-27 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在调试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();//锁定
}

使用特权

评论回复
沙发
stormwind123| | 2023-9-27 15:31 | 只看该作者
硬件本身是否存在问题,检查硬件连接和电源稳定性,确保一切正常。

使用特权

评论回复
板凳
laocuo1142| | 2023-9-27 15:32 | 只看该作者
电源稳定性如何

使用特权

评论回复
地板
stormwind123| | 2023-9-27 15:33 | 只看该作者
检查程序代码是否存在错误或漏洞。例如,是否正确配置了存储器的寄存器、是否使用了正确的指令集、是否在擦除或写入过程中有中断被触发等等。

使用特权

评论回复
5
yixifeng1990| | 2023-9-28 09:55 | 只看该作者
是不是传入的地址没有字节对齐的原因,对齐下试试

使用特权

评论回复
6
呐咯密密| | 2023-9-28 11:15 | 只看该作者
你这个擦写地址这么小,是写到代码区了吧,你得先看你代码占用多少FLASH,如果写到代码区就会死机

使用特权

评论回复
7
Henryko| | 2023-9-29 19:28 | 只看该作者
传入参数的问题吗?

使用特权

评论回复
8
Stahan| | 2023-9-30 12:26 | 只看该作者
电源不稳定吗?

使用特权

评论回复
9
Mowergy| | 2023-10-18 09:39 | 只看该作者
看一下是不是硬件问题,连接是否正确

使用特权

评论回复
10
Jacquetry| | 2023-10-18 21:09 | 只看该作者
写地址是不是有问题啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

567

主题

2517

帖子

4

粉丝