FlashEraseInit.TypeErase=FLASH_TYPEERASE_SECTORS; //扇区擦除 FlashEraseInit.Sector=STMFLASH_GetFlashSector(addrx); //擦除的扇区 FlashEraseInit.NbSectors=1; //擦除1个扇区 FlashEraseInit.VoltageRange=FLASH_VOLTAGE_RANGE_3; //电压范围2.7-3.6 if(HAL_FLASHEx_Erase(&FlashEraseInit,&SectorError)!
如果是BANK1或者BANK2需要擦除,调用函数FLASH_MassErase,然后等待擦除完成,完成之后关闭BANK1和BANK2的擦除请求位BER1/BER2 如果是扇区擦除,调用函数FLASH_Erase_Sector,然后等待擦除完成,完成之后关闭扇区的擦除请求位SER。 70.2.5 内部Flash读保护 内部Flash支持三级读保护RDP(read out protection)。 Level 0(...
EraseInitStruct.NbPages = 1; if (HAL_FLASHEx_Erase(&EraseInitStruct, &SECTORError) != HAL_OK) { while(1); } TypeErase用于选择擦除方式,按页擦除还是擦除整个flash(一般都是按页);然后选择好要擦除的起始地址和页数,起始地址一般都设置为扇区的起始地址,也可以按照自己的需要去确定。 2.写入 写入...
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) flash写入数据函数,需要注意的是第一个参数,决定写入数据的类型 八位,16位 32 位。 uint8_t erase_flash(uint32_t sector_start,uint32_t sector_end) { FLASH_EraseInitTypeDef EraseInitStruct; uint32_t ...
不同单片机有不同的Sector/Page/Bank等概念,这些概念涉及到一次性所能清除区域的大小 voidFLASH_W(uint32_t addr,uint16_t flash_read){//传入了需要写的flash地址,及写入的内容FLASH_EraseInitTypeDef My_Flash;//声明 FLASH_EraseInitTypeDef 结构体为 My_FlashHAL_FLASH_Unlock();//解锁FlashMy_Flash.TypeEr...
执行HAL_FLASHx_Erase函数进行擦除。 执行HAL_FLASH_Program对擦除区域写入新的数值。 打印判断是否成功。 FLASH上锁。 这里说一下,我在之前有对指针变量赋值地址,如图: 即将ID_card的指针地址指向0x0800 8000的位置。 另外说一下,不建议大家循环擦写FLASH,因为FLASH是有擦除次数限制的,在循环中擦FLASH会导致FLASH...
如果(HAL_FLASHEx_Erase(&pEraseInit, &SectorError) != HAL_OK){ /* 页面擦除时出错 */ ...
写操作:Flash的写操作通常需要先擦除(Erase)再写入(Program)。擦除操作会将指定页(Page)或扇区(Sector)的数据全部清除,然后才能在该区域写入新的数据。写入操作则是将数据按照指定的格式写入到Flash的指定地址。 读操作:Flash的读操作相对简单,可以直接从指定地址读取数据。由于Flash存储器的特性,读操作不会对其内容...
解锁后擦除扇区时可调用FLASH_EraseSector完成,见代码清单51_3。 代码清单 51‑3 擦除扇区 /*** @brief Perform a mass erase or erase the specified FLASH memory sectors* @param[in] pEraseInit: pointer to an FLASH_EraseInitTypeDef structure that* contains the configuration information for the ...
和操作。 erase program The main Flash memory can be programmed 16 bits at a time. Flash memory erase Flash memory addresses Size(byte) 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte 1 Kbyte Description Sector 0 Sector 0 ...