????????????uint8_t?addr; ????????????uint8_t?s,t; ????????????uint16_t?b; ????????????addr?=?dtuParameter.bus_addr; ????????????memset(encoding.pdata,0,8); ????????????EEPROM_READ(BLE_DTU_PARAMETER_NVID,&dtuParameter,sizeof(dtuParameter)); ????????????Data_flash[0]?=?dtuParameter.humi; ????????????Data_flash[1]?=?dtuParameter.temp; ????????????Data[0]?=?dtuParameter.baud; ????????????memcpy(Data?+?1,dtuParameter.DEVICE_ID,10); ????????????Data[11]?=?dtuParameter.flag; ????????????//t?=?EEPROM_ERASE(BLE_DTU_PARAMETER_NVID,256); ????????????EEPROM_READ(BLE_DTU_PARAMETER_NVID,Test_Buf,256); ????????????for(b?=?0;b?<?10;b++) ????????????{ ????????????PRINT("Test?=?%x?\n",Test_Buf[b]); ????????????} //????????????if(t?==?SUCCESS) ????????????{ ??????????????dtuParameter.bus_addr?=?decoding.pdata[0]; //??????????????dtuParameter.humi?=?Data_flash[0]; //??????????????dtuParameter.temp?=?Data_flash[1]; //??????????????dtuParameter.baud?=?Data[0]; //??????????????memcpy(dtuParameter.DEVICE_ID,Data?+?1,10); //??????????????dtuParameter.flag?=?Data[11]; ??????????????PRINT("bus_addr?=?%x\n?humi?=?%d\n?temp?=?%d\n?baud?=?%x\n?DEVICE_ID?=?%x\n?flag?=?%x?\n",dtuParameter.bus_addr,dtuParameter.humi,dtuParameter.temp,dtuParameter.baud,dtuParameter.DEVICE_ID,dtuParameter.flag); ????????????s?=?EEPROM_WRITE(BLE_DTU_PARAMETER_NVID,&dtuParameter,sizeof(dtuParameter)); ????????????if(s?!=?SUCCESS) ????????????{ ??????????????encoding.pdata[0]?=?1; ??????????????dtuParameter.bus_addr?=?addr; ????????????} ????????????else?{ ??????????????encoding.pdata[0]?=?0; ????????????} ????????????encoding.num?=?1; ????????????encoding.len?=?8; ????????????send_flag?=?0; ????????????dri_tick_mode?=?MODE_TICK_ENCODE; ????????????}
查看: 1178
回復(fù): 4
請(qǐng)教ch573f的EEPROM在操作的時(shí)候擦除與不擦除都能夠?qū)懭耄?
熱門產(chǎn)品 :
CH397: 高集成度、低功耗USB網(wǎng)卡芯片
EEPROM_WRITE好像是不會(huì)失敗的,你要測(cè)他是不是不擦除也可以寫,可以按照如下步驟:
先全擦一個(gè)EEPROM扇區(qū),讀取所有數(shù)據(jù)查看是否全為0xff
將扇區(qū)全部寫0,讀取所有數(shù)據(jù)查看是否為0x00
這次寫入你自己準(zhǔn)備的特殊數(shù)據(jù),然后再將扇區(qū)數(shù)據(jù)全部讀取出來查看
那個(gè)testbuf就是全擦后的數(shù)據(jù)都是0xff,之后寫入,是可以的。
寫0,并且讀出也是可以的。
寫入我自己的數(shù)據(jù),再讀出,也都是正確的。
不擦就寫的話是不保證正確率的,是會(huì)出錯(cuò)的,建議使用標(biāo)準(zhǔn)操作,擦了再寫,才能保證寫入數(shù)據(jù)無誤。
請(qǐng)勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務(wù)您
只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄