保存数据在EEPROM,读取后有误.
现有STC8H1K08的EEPROM,大小为4K,分为8个扇区,地址为0000h-0fffh,将const u8 DataFactory = {0xAA, 0xBB, 0x00, 0x00, 0xFF};写入EEPROM,具体代码如下:u8 DataStore; u8 eepromtmp;const u8 DataFactory = {0xAA, 0xBB, 0x00, 0x00, 0xFF};#defineDataAddres 0x0C00
EEPROM_write_n (DataAddres,DataFactory,5);
EEPROM_read_n (DataAddres,DataStore,5);
printf("----- 22222 DataFactory-----\r\n");
for (i = 0; i < 5; i++)
{
printf(" 0x%04x\t",DataStore);
}
printf("\n");
eepromtmp = DataStore;
DBG_PRINTF(" DataStore : %d\n ",eepromtmp);
上面的写入和读取函数来自例程,结果打印的却是
----- 22222 DataFactory-----
0xaadc 0xbbdc 0x00dc 0x00dc 0xffdc
DataStore : -17444
而不是BB,请问下如何造成?
格式化是一个都对不上啊,一个字节打印用%02X,u8 C51用%bu。
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=6864&highlight=printf&page=1&extra=#pid60079 ercircle 发表于 2025-6-19 21:00
格式化是一个都对不上啊,一个字节打印用%02X,u8 C51用%bu。
https://www.stcaimcu.com/forum.php?mod=view ...
我们这款单片机数据保存在Flash中与EEPROM有何区别?可有Flash的读写例程? migao 发表于 2025-6-20 12:12
我们这款单片机数据保存在Flash中与EEPROM有何区别?可有Flash的读写例程?
IAP型号的要自己在ISP软件上设置EEPROM大小,然后IAP操作EEPROM都一样的,注意对应型号的操作范围即可
在这下载有大量例程:
ercircle 发表于 2025-6-20 12:14
IAP型号的要自己在ISP软件上设置EEPROM大小,然后IAP操作EEPROM都一样的,注意对应型号的操作范围即可
在 ...
我这款是STC8H1K08,下载的例程都是EEPROM的,Flash的请问如何下载? migao 发表于 2025-6-20 14:07
我这款是STC8H1K08,下载的例程都是EEPROM的,Flash的请问如何下载?
“利用 ISP/IAP 技术可将内部 Data Flash 当EEPROM”
可以看看20章介绍
ercircle 发表于 2025-6-20 14:11
“利用 ISP/IAP 技术可将内部 Data Flash 当EEPROM”
可以看看20章介绍
擦除需要一个扇区,很浪费资源(512个字节),如果只用Flash,就只要10来个字节就好,请问如何对内部Flash的部分字节进行读写(存储后关机再启动,数据不变)?比如,建立数组, migao 发表于 2025-6-20 16:17
擦除需要一个扇区,很浪费资源(512个字节),如果只用Flash,就只要10来个字节就好,请问如何对内部Flash的部 ...
目前应该只有这一种操作flash方法噢。
页:
[1]