对STM32 内部FLASH进行编程操作,需要遵循以下流程: FLASH解锁 清除相关标志位 擦除FLASH(先擦除后写入的原因是为了工业上制作方便,即物理实现方便) 写入FLASH 锁定FLASH 实例: #define FLASH_PAGE_SIZE ((uint16_t)0x400) //如果一页为1K大小 #define WRITE_START_ADDR ((uint32_t)0x08008000)//写入的起始...
FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR|FLASH_FLAG_PGSERR); 通过工具写数据,就是我们量产时说的下载数据,正式一点说法叫编程。 3.擦除数据 擦除数据通常分擦除页、扇区、整块,擦除时间也因型号不同、速度不同...
FLASH_Unlock();//解锁FLASH编程擦除控制器 // FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);//清除标志位 FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR); / FLASHstatus=FLASH_ErasePage(addr);//擦除指定地址页 FLASHstatus=FLA...
FLASH_Unlock(); //解锁FLASH编程擦除控制器 FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清除标志位 FLASH_ErasePage(FLASH_START_ADDR); //擦除指定地址页 FLASH_ProgramHalfWord(FLASH_START_ADDR+(addr+i)*2,dat); //从指定页的addr地址开始写 FLASH_Cl...
SECTOR_SIZE/2))//需要擦除{FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WR...
=0XFFFF)break;//需要擦除登录后复制}登录后复制FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);登录后复制if(i//需要擦除登录后复制// if(i<(STM_SECTOR_SIZE/2))//需要擦除登录后复制{登录后复制FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WR...
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清除标志位 FLASH_Lock(); //锁定FLASH编程擦除控制器 从上面可以看出基本顺序是:解锁-》清除标志位(可以不要)-》擦除-》写半字-》清楚标志位(也可以不要)-》上锁。其中FLASH_START_ADDR是宏定义的0x8000000+20482...
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR| FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR|FLASH_FLAG_PGSERR); 写入步骤 1、检查FLASH_SR 中的BSY 位,以确认当前未执行任何主要Flash 操作 2、将FLASH_CR 寄存器中的PG 位置1。
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); /* 擦除FLASH 页*/ for(EraseCounter = 0; (EraseCounter < NbrOfPage) && (FLASHStatus == FLASH_COMPLETE); EraseCounter++) { FLASHStatus = FLASH_ErasePage(WRITE_START_ADDR + (FLASH_PAGE_SIZE * EraseCounter));...
1. 在擦除和写入操作后,检查FLASH_FLAG_EOP标志位,确保操作已经完成。2. 检查错误标志位,如FLASH_...