欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC8/32單片機學習筆記1:指針指向具體數字地址、取值 、宏定義 [打印本頁]

作者: liu888888    時間: 2022-12-11 22:00
標題: STC8/32單片機學習筆記1:指針指向具體數字地址、取值 、宏定義
STC8頭文件中#define        CKSEL                (*(unsigned char volatile xdata *)0xfe00)  /*  主時鐘源選擇 */
        0xfe00 是整型數字,在這里一個是地址門牌號數字; (unsigned char volatile xdata *) 是強制類型轉換,轉換成指針類型,該指針指向unsigned char型數據(1字節8bit);
        (unsigned char volatile xdata *)0xfe00  ////// 是指xdata外部可尋址擴存儲區的房間門牌號首地址是0xfe00的指針,存的數據類型是unsigned char(只占一個字節存儲單元房間8bit) 類型,volatile 是指這是個隨時變化量,每次需不厭其煩從此地址門牌號0xfe00內讀取新鮮數據再傳送,若傳輸過程被打斷了,再傳需重新讀取數值,后再傳送,不許接著傳送中斷前保留的那個暫存值。
       *(unsigned char volatile xdata *)0xfe00  ///// 前 加  * 是讀取地址門牌號0xfe00內的數據,由于該數據長度是一個字節的char型,只讀取0xfe00一個房間內數據值(若是int16位數據,需讀取0xfe00和0xfe01兩房間2個字節數據,每個房間放一個字節8bit數據 )。
    #define            CKSEL                (*(unsigned char volatile xdata *)0xfe00)    ///////   將  *(unsigned char volatile xdata *)0xfe00   加括號整包裹起來,宏定義 為 CKSEL ,替換成易懂簡短的字符標識,后面方便調用不易出錯。







作者: hjc5035    時間: 2023-1-5 17:23
#define  CKSEL    (*(unsigned char volatile xdata *)0xfe00)
這個可以這么理解吧?
從里層往外看,
有指針變量* (0xfe00),0xfe00是變量的首地址,該地址內的內容為unsigned char volatile xdata類型,即占用外部存儲空間0xfe00空間的易失性的無符號字符型變量(8bit);
外層的*(unsigned char volatile xdata *)0xfe00,就是說該指針變量指向了0xfe00,然后將其宏定義為 CKSEL
其本質是就是定義了一個存放于0xfe00的無符號字符型變量,特點是變量首地址確定在0xfe00了
類似于定義了一個指針變量 unsigned char volatile xdata *p,而&p=0xfe00。
我的理解就是這樣,各位看看有無問題。
作者: MCU2023    時間: 2023-11-12 09:26
不錯,大家解釋得很清楚,學到了。
作者: 白水大蝦2016    時間: 2024-5-7 13:42
入坑又搞了一個STC32G12K128想把所有的O/I口用起來搞一個花式彩燈,先試著將51例程中流水燈程序導入STC32中,顯示操作成功但沒有一個O/I 口有輸出信號,毛病出在哪里呢?內部頻率選的是11.0592。后來又將程序導入原有STC11F08XE芯片結果8燈全部閃爍狀可能是速度變快了,為什么呢?求解!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1