Peng. 发表于 2022-12-21 14:03:35

内部flash读写问题

想要往内部flash中存入浮点型数据(通过共用体实现的),但实际测试过程中,当连续多次写入数据时,会随机的出现写入错误的情况(不固定写第几次的时候,偶尔还会出现死机现象),这个时候读flash扇区中数据为全ff,继续写又好了,这是什么情况?有人能帮忙解答下么?:'(


eric2013 发表于 2022-12-21 14:09:23

楼主的这个是操作的那个系列,每次都是擦除固定大小吗,参数都是固定的写入到这个地址上。

另外你的读写和擦除Flash函数没有判断返回值,这个有必要判断下

Peng. 发表于 2022-12-21 14:49:29

eric2013 发表于 2022-12-21 14:09
楼主的这个是操作的那个系列,每次都是擦除固定大小吗,参数都是固定的写入到这个地址上。

另外你的读写 ...

我用的743,硬汉哥,我擦的是bank1的第二个扇区(0x08020000),用户程序都在第一个扇区中,您说的判断返回值是指的这个么?

Peng. 发表于 2022-12-21 14:50:27

eric2013 发表于 2022-12-21 14:09
楼主的这个是操作的那个系列,每次都是擦除固定大小吗,参数都是固定的写入到这个地址上。

另外你的读写 ...

uint8_t judgement_data_valid(uint8_t *data_p)
{
    if((data_p == 0xff) && (data_p == 0xff) && \
      (data_p == 0xff) && (data_p == 0xff) )
    {
      return INVALID;
    }
   
    return VALID;
}

eric2013 发表于 2022-12-21 15:02:27

Peng. 发表于 2022-12-21 14:49
我用的743,硬汉哥,我擦的是bank1的第二个扇区(0x08020000),用户程序都在第一个扇区中,您说的判断返 ...
使用H743的Flash要注意以下几点
1、每次擦除128KB Flash,时间还挺长的。
2、每次编程必须是32字节的整数倍,而且编程地址必须32字节对齐。
3、HAL库一定要使用新版,老版是有bug的。4、然后你调用的Flash HAL库API都是有返回值的,你的返回值要看下。
页: [1]
查看完整版本: 内部flash读写问题