WaitForLastOperation(50);/* 双字编程 */if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, startAddr, *(pDat + i)) == HAL_OK){startAddr += 8;tryCount = 0;break;}else{tryCount++;}}}if (tryCount){dprintf("Write Flas
if(HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD,start_address,data) != HAL_OK) { HAL_FLASH_Lock(); return; } start_address += 8; } HAL_FLASH_Lock();//上锁 } 读flash uint32_t ST_Flash_Read(uint32_t R_Addr) { //直接读地址,可以读取其他类型,。 return *(volatile uint32_t *)...
FlashEraseInit.NbPages = 1; //一次只擦除一页 HAL_FLASH_Unlock(); if(HAL_FLASHEx_Erase(&FlashEraseInit,&PageError) != HAL_OK) { return 2;//发生错误了 } ret = HAL_FLASH_Program(TYPEPROGRAM_DOUBLEWORD, address , data); HAL_FLASH_Lock(); return ret; } 3,读取数据代码 uint64_t...
tempWriteAdd, tempWriteData);HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, tempWriteAdd, tempWrit...
= HAL_OK) { // 处理擦除错误 return; } // 写入数据 for (uint32_t i = 0; i < length; i += 8) { // 按双字(8字节)写入 if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, address + i, *((uint64_t*)(data + i))) != HAL_OK) { // 处理写入错误 break; } } // ...
如果使能了写35voidSTMFLASH_Write_NoCheck(uint32_t faddr,uint8_t *pBuffer,uint16_t length)36{37uint64_t temp;38for(uint16_t i=0;i <= length/8;i++)39{40memcpy(&temp, pBuffer + i *8,sizeof(temp));41HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD,faddr,temp);//一次写8字节...
The whole non-volatile memory embeds the error correction code (ECC) feature supporting: 3.3.1 • single error detection and correction • double error detection • readout of the ECC fail address from the ECC register Securable area A part of the Flash memory can be hidden from the ...
5.3.10 Flash memory characteristics Table 41. Flash memory characteristics(1) Symbol tprog Parameter Row (32 double word) programming time tprog_page Page (2 Kbyte) programming time tprog_bank tME IDD(FlashA) IDD(FlashP) Typ Max Unit - 85 125 µs Normal programming 2.7 4.6 Fast ...
Typ Max Unit 200 260 300 380 520 650 μA 5.3.10 Flash memory characteristics Table 43. Flash memory characteristics(1) Symbol Parameter Conditions tprog tprog_row tprog_page tERASE tprog_bank tME IDD(FlashA) IDD(FlashP) 64-bit programming time Row (32 double word) programming time Page...
HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD,(uint32_t)(uint64_t *)(Address),Data64_To_Prog[1]); Address = (uint64_t *)(Address_Const + 16); HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD,(uint32_t)(uint64_t *)(Address),Data64_To_Prog[2]); ...