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