STM 32 IAP(对flash进行读写)
/************************************************************
**实验名称: **功能: **注意事项: **作者: *************************************************************/
#include "STM32Lib\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\stm32f10x.h"
#include "hal.h"
#define FLASH_ADR 0x08008000 //要写入数据的地址
#define FLASH_DATA 0x5a5a5a5a //要写入的数据
int main(void)
{ u32 tmp; ChipHalInit(); //片内硬件初始化 ChipOutHalInit(); //片外硬件初始化 //判断此FLASH是否为空白 tmp=*(vu32*)(FLASH_ADR); if(tmp==0xffffffff) { FLASH_Unlock(); //解锁flash编写擦除控制器 FLASH_ProgramWord(FLASH_ADR,FLASH_DATA);//在指定的地址写一个字 FLASH_Lock(); //锁定flash编写擦除控制器 USART1_Puts("kong ,has writen\\\\\\\\\\\\\\\\r\\\\\\\\\\\\\\\\n"); LED2_OFF; } else if(tmp==FLASH_DATA) { USART1_Puts("read right\\\\\\\\\\\\\\\\r\\\\\\\\\\\\\\\\n"); LED3_OFF; } else { USART1_Puts("read error\\\\\\\\\\\\\\\\r\\\\\\\\\\\\\\\\n"); FLASH_Unlock();//解锁flash编写擦除控制器 FLASH_ErasePage(FLASH_ADR);//擦除flash的一个页面 FLASH_Lock(); //锁定flash编写擦除控制器 USART1_Puts("has clear error address!\\\\\\\\\\\\\\\\r\\\\\\\\\\\\\\\\n"); LED4_OFF; } for(;;) { } } |
转载于:https://blog.51cto.com/7090376/1244536