打印
[应用相关]

FLASH操作问题,STM32G071的flash擦除

[复制链接]
353|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lalallalala|  楼主 | 2022-2-28 23:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我每次进在线时 如果把全片擦除勾选 进在线后程序里可以完成一次写flash但是之后程序例再有写flash就没有反应了
如果不勾选全片擦除 一次写flash都无法完成
所以我怀疑是没有擦除就不能写入

使用特权

评论回复
沙发
lalallalala|  楼主 | 2022-2-28 23:35 | 只看该作者
这是我擦除的函数
void flash_page_erase(uint32_t address)
{
    u8 tempPageNum;
    HAL_StatusTypeDef test = HAL_FLASH_Unlock();
    test = FLASH_WaitForLastOperation(1000); //1s timeout
    __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR);
        tempPageNum=(address-0x08000000)/2048;
    FLASH_PageErase(FLASH_BANK_1,tempPageNum-1);
    test = FLASH_WaitForLastOperation(1000);
    CLEAR_BIT(FLASH->CR, FLASH_CR_PER);

    HAL_FLASH_Lock();
}


![img]([img]https://img-mid.csdnimg.cn/release/static/image/mid/ask/564413971926137.png[/img] '1629179246(1).png')

使用特权

评论回复
板凳
呐咯密密| | 2022-3-1 09:32 | 只看该作者
写之前必须先擦除,因为FLASH不能写1,必须先将FLASH全擦除成FF

使用特权

评论回复
地板
littlelida| | 2022-3-1 14:16 | 只看该作者
没毛病,写前擦黑板

使用特权

评论回复
5
两只袜子| | 2022-3-1 14:24 | 只看该作者
写前先擦除

使用特权

评论回复
6
diweo| | 2022-3-1 14:52 | 只看该作者
Flash写操作只能把1变成0。 要想把0变成1的话,必须进行擦除操作。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

82

帖子

0

粉丝