• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32F103 flash模拟eeprom 的问题?

━╋う酔意流年☆═━ヾ 2018-10-11 浏览量:756
第一次写入00 00 00 0C 00 02  读出来就是00 00 00 0C ff ff,但是我重新写入一边,读出来就正确的。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 最后两个字节读出来是FF  FF 这个就表示最后两个字节没有写成功。

    重写一遍就正常,这个问题不好解释,

    建议你好好的检查一下你的代码。

    在写程序之前,一定要将FLASH的整个扇区清零,因为FLASH不能单独擦除,要擦除,只能擦除整个扇区;写的话可以单字节写。

    这点需要注意一下。

    • 发布于 2018-10-11
    • 举报
    • 评论 1
    • 1
    • 0
━╋う酔意流年☆═━ヾ 回复了 川楠:我是擦除的整个扇区的。 回复

其他答案 数量:11
  • 有可能会是指针地址不正确 把读写的代码发出来看看
    • 发布于2018-10-11
    • 举报
    • 评论 1
    • 0
    • 0
━╋う酔意流年☆═━ヾ 回复了 lichangle :指针地址不正确,重写不也是错误的。但是写第二遍就可以了。 回复

  • 每次写入中间需要加延时,我也碰到类似问题
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 内部的flash要一次性写入16位。不能按照字节方式操作。你的这情况应该是你第一次写入数据时,最后的两个字节数据写入出错。写入内部的flash要严格按照流程进行操作,对时间和顺序有要要求。可以直接使用固件库操作的,我使用固件库操作一次就成功了啊。、
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 写flash之前要先清空,以为写的时候只能把bit位拉低,不会拉高。写入的时候还要注意写入的方式
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 电压正常不?写入过程中是否有延时?写入之前是否有擦除?
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的flash默认一次是写入四个字节,不能写入六字节的,因此对后面两个字节的写入是失败的,导致里面内容是oxFF
    • 发布于2018-10-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的读写地址是否正常要检查你的地址里面是否有对应的数据
    • 发布于2018-10-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的flash一般都是读写保护地址的,这个地址是不是已经设置正确
    • 发布于2018-10-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 那就可能是你两次写入之间有些操作改变了flash的内容,检查一下这部分的代码。
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般这个flash都是有地址可以操作的,检查一下你这一部分的代码
    • 发布于2018-11-12
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32F103 flash模拟eeprom 的问题?