找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4893|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STC8/32單片機學(xué)習(xí)筆記1:指針指向具體數(shù)字地址、取值 、宏定義

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:433166 發(fā)表于 2022-12-11 22:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC8頭文件中#define        CKSEL                (*(unsigned char volatile xdata *)0xfe00)  /*  主時鐘源選擇 */
        0xfe00 是整型數(shù)字,在這里一個是地址門牌號數(shù)字; (unsigned char volatile xdata *) 是強制類型轉(zhuǎn)換,轉(zhuǎn)換成指針類型,該指針指向unsigned char型數(shù)據(jù)(1字節(jié)8bit);
        (unsigned char volatile xdata *)0xfe00  ////// 是指xdata外部可尋址擴存儲區(qū)的房間門牌號首地址是0xfe00的指針,存的數(shù)據(jù)類型是unsigned char(只占一個字節(jié)存儲單元房間8bit) 類型,volatile 是指這是個隨時變化量,每次需不厭其煩從此地址門牌號0xfe00內(nèi)讀取新鮮數(shù)據(jù)再傳送,若傳輸過程被打斷了,再傳需重新讀取數(shù)值,后再傳送,不許接著傳送中斷前保留的那個暫存值。
       *(unsigned char volatile xdata *)0xfe00  ///// 前 加  * 是讀取地址門牌號0xfe00內(nèi)的數(shù)據(jù),由于該數(shù)據(jù)長度是一個字節(jié)的char型,只讀取0xfe00一個房間內(nèi)數(shù)據(jù)值(若是int16位數(shù)據(jù),需讀取0xfe00和0xfe01兩房間2個字節(jié)數(shù)據(jù),每個房間放一個字節(jié)8bit數(shù)據(jù) )。
    #define            CKSEL                (*(unsigned char volatile xdata *)0xfe00)    ///////   將  *(unsigned char volatile xdata *)0xfe00   加括號整包裹起來,宏定義 為 CKSEL ,替換成易懂簡短的字符標(biāo)識,后面方便調(diào)用不易出錯。






評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1060328 發(fā)表于 2023-1-5 17:23 | 只看該作者
#define  CKSEL    (*(unsigned char volatile xdata *)0xfe00)
這個可以這么理解吧?
從里層往外看,
有指針變量* (0xfe00),0xfe00是變量的首地址,該地址內(nèi)的內(nèi)容為unsigned char volatile xdata類型,即占用外部存儲空間0xfe00空間的易失性的無符號字符型變量(8bit);
外層的*(unsigned char volatile xdata *)0xfe00,就是說該指針變量指向了0xfe00,然后將其宏定義為 CKSEL
其本質(zhì)是就是定義了一個存放于0xfe00的無符號字符型變量,特點是變量首地址確定在0xfe00了
類似于定義了一個指針變量 unsigned char volatile xdata *p,而&p=0xfe00。
我的理解就是這樣,各位看看有無問題。
回復(fù)

使用道具 舉報

板凳
ID:1097337 發(fā)表于 2023-11-12 09:26 來自手機 | 只看該作者
不錯,大家解釋得很清楚,學(xué)到了。
回復(fù)

使用道具 舉報

地板
ID:876947 發(fā)表于 2024-5-7 13:42 | 只看該作者
入坑又搞了一個STC32G12K128想把所有的O/I口用起來搞一個花式彩燈,先試著將51例程中流水燈程序?qū)隨TC32中,顯示操作成功但沒有一個O/I 口有輸出信號,毛病出在哪里呢?內(nèi)部頻率選的是11.0592。后來又將程序?qū)朐蠸TC11F08XE芯片結(jié)果8燈全部閃爍狀可能是速度變快了,為什么呢?求解!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表