边缘天空 发表于 2020-9-11 20:44

HC32L130读写FLASH问题

今天在试验官方例程读写FLASH时,发现当FLASH为0xff时,读写正常,再次对同一地址读写时,程序死在校验循环里(此时该FLASH地址内容为非0XFF),哪位大侠遇到这种情况,请指点一下,万分感谢!
int32_t main(void)
{
    uint32_t          u32Addr    = 0xff00;
    uint8_t         u8TestData = 0x5a;      
   
    ///< 确保初始化正确执行后方能进行FLASH编程操作,FLASH初始化(编程时间,休眠模式配置)
    while(Ok != Flash_Init(1, TRUE))
    {
      ;
    }
   
    ///< FLASH目标扇区擦除
    while(Ok != Flash_SectorErase(u32Addr))
    {
      ;
    }
   
    for (u32Addr=0xFF00; u32Addr<0x10000; u32Addr++)
    {
      ///< FLASH 字节写、校验
      if (Ok == Flash_WriteByte(u32Addr, u8TestData))
      {
            while(*((volatile uint8_t*)u32Addr) != u8TestData)///< 如果写入的数据不对,在此处死循环
            {
                ;
            }
      }
    }
   
    while (1);
}

a1072619378 发表于 2021-4-15 16:29

我也发现这个问题了,但是如果你重新上电之后他就能够成功改写,可以试一下。

zwsam 发表于 2022-6-18 09:35

页: [1]
查看完整版本: HC32L130读写FLASH问题