OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4084|回复: 0

F429 FLASH 写入数据函数 擦除扇区问题

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2017-10-5
在线时间
4 小时
发表于 2017-12-13 22:30:26 | 显示全部楼层 |阅读模式
u8 Flash_Write_Byte(u8 data,u32 addr)
{
        FLASH_EraseInitTypeDef Erase_Init;
        u32 SectorError;
        u8 sector = STMFLASH_GetFlashSector(addr + FLASH_BASE_ADDR);
        u32 Bank = Flash_GetBank(sector);

        HAL_FLASH_Unlock();
        FLASH_WaitForLastOperation(50000);
       
        Erase_Init.Banks = Bank;
        Erase_Init.NbSectors = 1;
        Erase_Init.Sector = sector;
        Erase_Init.TypeErase = FLASH_TYPEERASE_SECTORS;
        Erase_Init.VoltageRange = FLASH_VOLTAGE_RANGE_3;
        //调试 一旦运行到此处 再往下走 就直接出错了 必须要重新下载程序才能运行
        //0xFFFFFFFE 0000      MOVS          r0,r0= FLASH_VOLTAGE_RANGE_3;  汇编窗口 就一直在这里
        //请问下 这是怎么回事啊 ?
       
        if(HAL_FLASHEx_Erase(&Erase_Init,&SectorError) != HAL_OK)
        {
                return 1;
        }
        FLASH_WaitForLastOperation(50000);
        HAL_FLASH_Program(FLASH_TYPEPROGRAM_BYTE ,(addr + FLASH_BASE_ADDR) , data);
        FLASH_WaitForLastOperation(50000);
        HAL_FLASH_Lock();
       
        return 0;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 22:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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