STC12C5A60S2,分別把第一組數據和第二組數據分別放在EEPROM的第一扇區(0x0000)和第二扇(0x0200),IAP程序是嚴格按照官方手冊寫的,為什么第一扇區正常存取,面第二扇區卻不能存取(嚴格的說是根本就沒法寫入),請高手幫我看一下,非常感謝!
- uchar data bht[4];//用于儲存第一組數據的值(0~3一共4個)
- char data hms[9];//用于儲存第二組數據的值(0~8一共9個)
- uint code E_bhtaddr[]={0x0000,0x0001,0x0002,0x0003};//存第一組數據的值在eeprom中的地址
- uint code E_hmsaddr[]={0x0200,0x201,0x202,0x203,0x204,0x205,0x206,0x207,0x208};//存第二組數據的值在eeprom中的地址
- //*******************************讀取存第一組數據的值函數*****************************
- void Eeprom_Rbht()
- {
- uchar i;
- for(i=0;i<4;i++)
- {
- bht[i]=Byte_read(E_bhtaddr[i]);
- if(bht[i]<1|bht[i]>60)bht[i]=25;
- }
- }
- //*******************************儲存存第一組數據的值函數*****************************
- void Eeprom_Wbht()
- {
- uchar i;
- Sector_Erase(0x0000);
- for(i=0;i<4;i++)
- {
- Byte_write(E_bhtaddr[i],bht[i]);
- }
- }
- //*******************************讀取存第二組數據的值函數*****************************
- void Eeprom_Rhms()
- {
- uchar i;
- for(i=0;i<9;i++)
- {
- hms[i]=Byte_read(E_hmsaddr[i]);
- if(hms[i]<0|hms[i]>60)hms[i]=20;
- }
- }
- //*******************************儲存存第二組數據的值函數*****************************
- void Eeprom_Whms()
- {
- uchar i;
- Sector_Erase(0x200);
- for(i=0;i<9;i++)
- {
- Byte_write(E_hmsaddr[i],hms[i]);
- }
- }
復制代碼
|