写入FLASH */ Address = WRITE_START_ADDR; while((Address < WRITE_END_ADDR) && (FLASHStatus == FLASH_COMPLETE)) { FLASHStatus = FLASH_ProgramWord(Address, Data); Address = Address + 4; } /* 锁定FLASH */ FLASH_Lock();
| FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);FLASH_ProgramWord(addr, data);FLASH_LockBank1();
锁定函数:void FLASH_Lock(void);有解锁当然就有上锁,为了保护Flash,读写和擦除全部需要的Flash后需要上锁,只需要调用: FLASH_Lock(); 写操作函数:固件库提供了三个 FLASH 写函数: FLASH_StatusFLASH_ProgramWord(uint32_t Address,uint32_t Data);FLASH_StatusFLASH_ProgramHalfWord(uint32_t Address,uint16_...
FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data);//一次写一个字,对于32系统,一次写的是4个字节,uint32_t 变量大小,32bit FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data);//一次写一个半字,对于32系统,一次写的是2个字节,uint16_t 变量大小,16bit FLASH_Sta...
while ((Remain_u32 > 0) && (FLASHStatus == FLASH_COMPLETE)) { FLASHStatus = FLASH_ProgramWord(Address, DataAddress[SizeOf_u32-Remain_u32]); Address = Address + 4; Remain_u32--; } /* 锁定*/ FLASH_Lock(); return 0; }
FLASH_StatusFLASH_ProgramWord(uint32_t Address,uint32_t Data);FLASH_StatusFLASH_ProgramHalfWord(uint32_t Address,uint16_t Data);FLASH_StatusFLASH_ProgramOptionByteData(uint32_t Address,uint8_t Data); 分别为按字(32bit)写入、按半字(16bit)写入、按字节(8bit)写入函数。32 位字节写入实际上是...
/* 向内部FLASH写入数据 */ Address = WRITE_START_ADDR; while((Address < WRITE_END_ADDR) && (FLASHStatus == FLASH_COMPLETE)) { FLASHStatus = FLASH_ProgramWord(Address, Data); Address = Address + 4; } FLASH_Lock(); /* 检查写入的数据是否正确 */ ...
FLASH_StatusFLASH_ProgramWord(uint32_tAddress,uint32_tData);FLASH_StatusFLASH_ProgramHalfWord(uint32_tAddress,uint16_tData);FLASH_StatusFLASH_ProgramOptionByteData(uint32_tAddress,uint8_tData); 分别为按字(32bit)写入、按半字(16bit)写入、按字节(8bit)写入函数。32 位字节写入实际上是写入的两次...
FLASHStatus = FLASH_ProgramWord(Address, buff[k]);//写入一个字(32位)的数据入指定地址 Address = Address + 4;//地址偏移4个字节 } FLASH_Lock();//重新上锁,防止误写入 } else { return 0; } if(FLASHStatus == FLASH_COMPLETE) {
< Program a double word (64-bit) at a specified address */ 形参Address用来设置要写入数据的 FLASH 地址。 形参Data是要写入的数据类型。 该函数的返回值是HAL_StatusTypeDef枚举类型的值,有 4 个,分别是HAL_OK表示成功,HAL_ERROR表示错误,HAL_BUSY表示忙碌,HAL_TIMEOUT表示超时。