STM32 Blue Pill内部Flash读取特定字节异常原因排查
STM32 Blue Pill内部Flash读取特定字节异常排查
对STM32 Blue Pill的内部Flash执行读写操作,写入过程验证正常,但读取数据时仅有特定字节出现异常。读取8KB数据时仅156字节出错,且每次均为相同位置,但通过STM32CubeProgrammer查看内存可确认数据已准确写入Flash。
读取Flash的代码如下:
uint8_t *Read_Buffer; uint16_t Read_Size = 8192; uint32_t Internal_Flash_Address = 0x0800C000; Read_Buffer = (uint8_t *) malloc(Read_Size * sizeof(uint8_t)); for(uint16_t j=0; j<Read_Size; j++){ Read_Buffer[j] = *(__IO uint8_t *)Internal_Flash_Address; Internal_Flash_Address++; } while(CDC_Transmit_FS(Read_Buffer, Read_Size) != USBD_OK){}; free(Read_Buffer);
写入的数据

读取的错误数据(黄色标记为异常字节)

STM32CubeProgrammer查看的Flash数据

请问通过内存指针读取数据时,出现该现象的其他原因有哪些?
内容的提问来源于stack exchange,提问作者Diracx
相关产品推荐
相关产品推荐

