发 帖  
[问答]

STM32F429ZIT6的FLASH擦除读写失败的原因?

276 STM32F4 FlaSh

  • //定义要写入的数据和指向FLASH的指针
    int text[10]= {1,2,3,4,5,6,7,8,9,10};
    uint32_t *ID_card[10];

  • //将指针指向FLASH的地址位置
    for(int k=0;k<10;k++)
  • {
  •     *ID_card[k] = NULL;
  •     ID_card[k] = (uint32_t *)(0x08008000+(k*4));
  • }


  • //以下是循环读写擦除的代码
    while(1)
  •                                 {
  •     HAL_FLASH_Unlock();                                                                                                                                                                                                //FLASH解锁

  •     EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;                           //只擦除模式
  •     EraseInitStruct.Sector = FLASH_PAGE_ID_CARD;                                                                                        //开头的闪存区
  •     EraseInitStruct.NbSectors = 1;                                                                                                                                                //擦1页
  •     EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3;                                                        //擦除电压在2.7-3.3V

  •     if(HAL_FLASHEx_Erase( EraseInitStruct,  PageError) != HAL_OK)                               //开始擦除页面
  •     {
  •         printf("存储区擦除失败rn");
  •     }

  •     for(int i=0;i<10;i++)
  •     {
  •         if(HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, FLASH_PAGE_ID_CARD + (i*4),text) !=HAL_OK)
  •          {
  •              printf("写入失败rn");
  •          }
  •      }

  •     for(int k=0;k<10;k++)
  •     {
  •         printf("原始数据为%d   ",text[k]);
  •         printf("%p位置数据为%drn",ID_card[k],*ID_card[k]);
  •     }

  •     HAL_FLASH_Lock();                                                                                                                                                                                                 //FLASH上锁

  •     HAL_Delay(5000);

  •     for(int i=0;i<10;i++)
  •     {
  •         text++;
  •     }
  •                                 }

    0
  • 2024-4-12 07:45:03   评论 分享淘帖 邀请回答 举报
    1个回答
    2024-4-12 14:44:20 评论

    举报

    只有小组成员才能发言,加入小组>>

    12778个成员聚集在这个小组

    加入小组

    创建小组步骤

    快速回复 返回顶部 返回列表
    关注微信公众号

    电子发烧友网

    电子发烧友论坛

    社区合作
    刘勇
    联系电话:15994832713
    邮箱地址:liuyong@huaqiu.com
    社区管理
    elecfans短短
    微信:elecfans_666
    邮箱:users@huaqiu.com
    关闭

    站长推荐 上一条 /6 下一条

    快速回复 返回顶部 返回列表