當前位置:股票大全官網 - 私募基金 - 和泰單片機內置的eeprom只能讀不能寫。怎麽解決?

和泰單片機內置的eeprom只能讀不能寫。怎麽解決?

我也遇到過這樣的問題。沒有人給出答案。讓我告訴妳壹些事情。(主要是為V3編譯C)

根據Holtek _ c _ compiler _ V3 _ FAQ (950)的描述。pdf,v3不保證編譯後的指令符合EEPROM寫入順序。根據BS86的數據表,雷恩和WR必須符合順序。

我的編譯指令是LSET·雷恩和LSET·WR,這是個問題。芯片需要的東西已經設定好了。

解決方法是根據官方的FAQ描述。

“5.5如何使用寫EEPROM有限制的MCU(連續設置wren,wr,flag)?

V3寫EEPROM?"

這是代碼

//參考?去哪?Holtek_C_Compiler_V3_FAQ(950)。可移植文檔格式文件的擴展名(portable document format的縮寫)

typedef?結構{

未簽名?夏爾?bit0?:?1;

未簽名?夏爾?bit1?:?1;

未簽名?夏爾?bit2?:?1;

未簽名?夏爾?bit3?:?1;

未簽名?夏爾?bit4?:?1;

未簽名?夏爾?bit5?:?1;

未簽名?夏爾?bit6?:?1;

} iar _ bits

DEFINE_SFR(iar_bits,?iar1,?0x 02);

#定義?IAR 1 _ 3 IAR 1 . bit 3

#定義?IAR 1 _ 2 IAR 1 . bit 2

#定義?IAR 1 _ 1iar 1 . bit 1

#定義?IAR 1 _ 0ia r1 . bit 0...

uint8_t?bkup

_eea?=?u8Addr

_eed?=?u8NewData

_mp1l?=?0x40

bkup=?_ MP 1h;

_mp1h?=?0x 01;

_emi?=?0;

iar1_3?=?1;

iar1_2?=?1;

_emi?=?1;

while(iar1_2)

{

}

_iar1?=?0;

_mp1h?=?bkup

...官方解決方案生成的代碼與數據手冊中的代碼相同:

;129 IAR 1 _ 3?=?1;

0D0D 3182 set?__iar1[0].3 "這裏曾經是LSET?鷦鷯

;130 IAR 1 _ 2?=?1;

0D0E 3102 set?__iar1[0].2 "這裏曾經是LSET?華氏反應(Wassermann reaction)