原创
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(;;)
{
}
}
文章评论(0条评论)
登录后参与讨论