本帖最后由 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();
不知道问题出在哪里,求指教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
单步调试了一下,寄存器Flash->CR的PG(编程位)置一操作不成功,SET_BIT(FLASH->CR, FLASH_CR_PG);这句语句运行之后PG标志位仍然为0,所以数据写不进Flash,不知道什么原因。Flash的WRPR(写保护)寄存器的值是0xFFFF,也就是没有打开写保护啊。
一周热门 更多>