踩不死的小强 发表于 2019-8-5 19:52:38

请教STM32L151RTC6 内部EEPROM无法重复写入的问题

大家好!
      本人刚刚使用ARM,比较生疏,模仿网上使用库函数编写程序!使用的芯片是STM32L151RTC6!
      使用FLASH_Status DATA_EEPROM_ProgramByte(uint32_t Address, uint8_t Data)函数,只能写入一个地址一次,重复写入是不知什么原因FLASH_GetStatus()标志位一直不是FLASH_COMPLETE,清楚标志位之后也不好用,不知什么原因标志位一直都在不知FLASH_ERROR_PROGRAM就是 FLASH_ERROR_WRP,导致程序一直无法写入!
       奇怪的是如果忽略这几个标志位,不调用库函数,直接以寄存器的形式编写程序则读写无误,不知原因,请大家多帮助,如何使用库函数,尝试了在写数据前清除所有的标志,没用,似乎清除不掉,后面获取标志还是FLASH_ERROR_PROGRAM或FLASH_ERROR_WRP,一直写不进内容!
      请大家帮忙,多多益善,谢谢!

mmuuss586 发表于 2019-8-6 09:40:34

写之前需要unlock的

发表于 2019-8-6 10:34:24

只能写入一次的问题,是因为写入前未进行擦除操作。加上擦除代码就可以了。

wenyangzeng 发表于 2019-8-6 10:40:29

写Flash前需要Flash页删除的


lqf321 发表于 2019-8-6 17:21:46

一般步骤,解锁 - 清楚标志位 - 擦除- 写入 -加锁
页: [1]
查看完整版本: 请教STM32L151RTC6 内部EEPROM无法重复写入的问题