wulin 發表于 2023-9-8 07:34
上述代碼表面看沒有問題,易出錯可能是受中斷干擾或放在不恰當的位置,亦或相關讀寫的函數體有問題。
yzwzfyz 發表于 2023-9-8 08:32
試試 = 高位*256 + 低位
ZSJM 發表于 2023-9-8 09:33
uint 如果真是16位的話,應該沒錯。
或者,你可以考慮union
zhuls 發表于 2023-9-8 10:51
shu=(IapRead(0x0000)
君工創 發表于 2023-9-8 15:52
我在擦除前關中斷
EA=0;
IapErase(0x0000);
fishafish 發表于 2023-9-8 16:34
應該是第三行錯了,16位shu存入8位的話,自動四舍五入,其實存的還是高8位

2008_clz 發表于 2023-9-9 09:48
用聯合體(uion)做方便,不用考慮這么多
君工創 發表于 2023-9-8 22:41
這個講法有可能,因為某些數會錯,而一些數不會錯。
hhh402 發表于 2023-9-8 23:29
數據溢出了,shu=IapRead(0x0000)
Longan.Wang 發表于 2023-9-12 15:16
方法可行,但是后兩句錯了
uint16_t shu;
uint8_t *p;
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |