#define FLASH_USER (FLASH_BASE+0x00100000U)
void StartDefaultTask(void const * argument)
{
/* USER CODE BEGIN 5 */
uint32_t i = 0;
uint32_t * pFlash_Data = (uint32_t *)FLASH_USER;
/* Infinite loop */
for(;;)
{
osDelay(5000);
HAL_FLASH_Unlock();
HAL_FLASH_Program(FLASH_PSIZE_WORD,FLASH_USER, (uint64_t)i++);
HAL_FLASH_Lock();
FLASH_WaitForLastOpera
tion(100);
printf("Hello world%d
",*pFlash_Data);
HAL_GPIO_WritePin(GPIOB, LD1_GREEN_Pin, i&0x00000001);
//HAL_UART_Transmit(&huart3, "a", 1, 0xFFFF);
}
/* USER CODE END 5 */
}
以上代码写入后读出测试失败,大侠给个例子吧。
谢谢答复。
IAP_IN_MCU.h是那个环境的?
我是用CUBEMX生成的工程。
给个下载地址吧,F1的我能搞定。F7的完全不同啊。
是这个理啊,可惜程序烧写占了前面的小块。
谢谢大侠提醒,看过说明后我死了用片山Flash存数据的心,还是外部加个QSPI的EEPROM吧,擦除一个bank才能写,看来只有IAP适合用。
编译的时候地址偏移啊,第一个扇区用来跳转,跳过第二个扇区,第二个存数据呗
一周热门 更多>