在线时间8 小时
UID3776548
注册时间2021-11-15
NXP金币0
该用户从未签到
注册会员
- 积分
- 96
- 最后登录
- 2023-4-4
|
我模拟成EEPROM也不行欸,读到的数据和写入的数据不一样,而且写入的时候,数据会发生跳变求大佬帮忙看看!!!
void Flash_Init(void)
{
/* Disable cache to ensure that all flash operations will take effect instantly, this is device dependent */
MSCM->OCMDR[0u] |= MSCM_OCMDR_OCM1(0x3u);
MSCM->OCMDR[1u] |= MSCM_OCMDR_OCM1(0x3u);
flashResult=FLASH_DRV_Init(&Flash_InitConfig0,&flashSSDConfig);
if(flashSSDConfig.EEESize==0u)
{
flashResult=FLASH_DRV_DEFlashPartition(&flashSSDConfig,0x02u,0x08u,0x0u,false,true);
flashResult=FLASH_DRV_Init(&Flash_InitConfig0,&flashSSDConfig);
flashResult = FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_ENABLE, 0x00u, NULL);
}
else
{
flashResult = FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_ENABLE, 0x00u, NULL);
}
EEPROM_BaseAddress = flashSSDConfig.EERAMBase;
}
uint8_t writeDataToEEPROM(uint8_t *data,uint32_t addroffset,uint32_t size)
{
flashResult=FLASH_DRV_EEEWrite(&flashSSDConfig,EEPROM_BaseAddress+addroffset,size,data);
return flashResult;
}
void readDataFromEEPROM(uint8_t *read, uint32_t addrOffset, uint32_t size)
{
uint8_t i=0;
for(i=0;i<size;i++)
{
read=*((uint32_t *)(EEPROM_BaseAddress+addrOffset+i));
}
}
void flash_test(void)
{
INT_SYS_DisableIRQGlobal();
uint32_t i=0x00000001;
uint8_t data;
uint8_t read;
data=0x12;
if(!writeDataToEEPROM(&data,i,1));
readDataFromEEPROM(&read,i,1);
if(read==0x12)
{
sprintf(uart_info,"1\r\n");
LPUART_DRV_SendData(INST_UART_DEBUG,(uint8_t*)uart_info,strlen(uart_info));
while(LPUART_DRV_GetTransmitStatus(INST_UART_DEBUG,&bytesRemaining)!=STATUS_SUCCESS);
}
}
|
|