写Flash失败

2019-03-23 18:04发布

本帖最后由 wjroy11 于 2016-7-28 17:33 编辑
用的片子是STM32F103TBU6,写Flash之后查看内存数据并没有成功写进去,仍然是0xFF。
使用的Cube生成的配置,HAL库函数。
写Flash代码如下:
        //解锁
        HAL_FLASH_Unlock();
        //清标志位
  __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP  | FLASH_FLAG_WRPERR | FLASH_FLAG_PGERR );
        //擦除
        FLASH_PageErase(0x08005000);
        //写Flash
        uint64_t Buffer = 0x12345678;
        HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, 0x08005000,Buffer);
        //锁
        HAL_FLASH_Lock();

不知道问题出在哪里,求指教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
wjroy11
2019-03-24 05:12
yl20084784 发表于 2016-7-28 18:48
我给你看看我的标准库里面怎么弄得,参考一下。hal库的自己下个参考例程看看就行了:这是关键的方法。
    ...

单步调试了一下,寄存器Flash->CR的PG(编程位)置一操作不成功,SET_BIT(FLASH->CR, FLASH_CR_PG);这句语句运行之后PG标志位仍然为0,所以数据写不进Flash,不知道什么原因。Flash的WRPR(写保护)寄存器的值是0xFFFF,也就是没有打开写保护啊。

一周热门 更多>