中级会员
 
- 积分
- 400
- 金钱
- 400
- 注册时间
- 2015-10-16
- 在线时间
- 85 小时
|
5金钱
我用的芯片是STM32F103C8T6 ,flash有64k,我的工程一共30K,写flash的程序如下:
INT32U loop = 0;
FLASH_Unlock();
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
FLASH_ErasePage(0x800FBFF);
FLASH_ProgramWord(0x800FF00, 0x11223300);
FLASH_Lock();
loop = *(volatile uint32_t*) (0x800FF00);
现在上面的程序不知道写进去没,读不出来值,谁帮我看看哪错了,多谢
之前的程序地址都写为0x800FBFF如下,程序会运行到status = FLASH_WaitForLastBank1Operation(EraseTimeout);死掉,然后进入到void HardFault_Handler(void)的死循环里
FLASH_ErasePage(0x800FBFF);
FLASH_ProgramWord(0x800FBFF, 0x11223300);
FLASH_Lock();
loop = *(volatile uint32_t*) (0x800FBFF);
我想知道每页多少字节,擦除可以从哪页开始呢?
|
|