欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
《51單片機輕松入門-基于STC15W4K系列》225頁DataFlash篇程序問題
[打印本頁]
作者:
pineydu
時間:
2016-3-4 22:49
標題:
《51單片機輕松入門-基于STC15W4K系列》225頁DataFlash篇程序問題
請教無大俠:
書上P224的例7.5中,在主程序中EEPROM_read_n中U8 后面的*是讀出的數據吧,
這個數據會被傳送到ISP_DATA是嗎?這個ISP_DATA會在256時溢出吧,
我想要不溢出,是否把U8改成U32就可以了?
void EEPROM_read_n(unsigned int EE_address, unsigned char *DataAddress, unsigned char lenth)
{
EA = 0; //禁止中斷
ISP_CONTR = (0x80 + ISP_WAIT_FREQUENCY); //設置等待時間,允許ISP/IAP操作,送一次就夠
ISP_CMD = 1; //送字節讀命令,命令不需改變時,不需重新送命令
do
{
ISP_ADDRH = EE_address / 256; //送地址高字節(地址需要改變時才需重新送地址)
ISP_ADDRL = EE_address % 256; //送地址低字節
ISP_TRIG = 0x5A; //先送5AH,再送A5H到ISP/IAP觸發寄存器,每次都需要如此
ISP_TRIG = 0xA5; //送完A5H后,ISP/IAP命令立即被觸發啟動
//CPU等待IAP完成后,才會繼續執行程序。
_nop_();
*DataAddress = ISP_DATA; //讀出的數據送往外部變量地址
EE_address++; //下一個地址
DataAddress++; //下一個數據
}
while(--lenth);
DisableEEPROM();
EA = 1; //重新允許中斷
}
被保存的數據可以直接從ISP_DATA中讀取嗎? 還是需要從DataAddress中讀取,如何使存儲和讀取的數據不在65535溢出?
作者:
無量壽經
時間:
2016-3-5 00:05
參數“(u8 *)&Power_up”用于存放從內部DataFlash讀出的數據,(u8 *)是將結構體變量Power_up的地址轉換成按字節訪問的地址,因為ISP_DATA是一個字節一個字節方式寫入,
結構體定義如下:
#define u8 unsigned char
#define u32 unsigned long
struct POWER_UP
{
u32 times;
u8 flag;
};
因為變量times被定義為unsigned long,所以不會溢出。
作者:
pineydu
時間:
2016-3-5 00:25
無量壽經 發表于 2016-3-5 00:05
參數“(u8 *)&Power_up”用于存放從內部DataFlash讀出的數據,(u8 *)是將結構體變量Power_up的地址轉換成按 ...
我要從EEPROM中讀取數據,是直接調用ISP_DATA嗎?
作者:
無量壽經
時間:
2016-3-5 00:32
本帖最后由 無量壽經 于 2016-3-5 00:39 編輯
《51單片機輕松入門-基于STC15W4K系列》免費視頻與例程下載地址:
http://pan.baidu.com/share/home? ... are#category/type=0
作者:
無量壽經
時間:
2016-3-5 00:36
調用這個函數:EEPROM_read_n(EEP_address,(u8 *)&Power_up,sizeof(struct POWER_UP)); // 讀出斷電時刻自動保存的值
作者:
無量壽經
時間:
2016-3-5 08:07
C語言結構體的講解在《51單片機輕松入門-基于STC15W4K系列》的80頁,(u8 *) 的()是強制類型轉換運算符,是見76頁。
作者:
舞者人生
時間:
2020-1-2 11:08
無法看到分析
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1