標題:
單片機S2CON&=~S2TI; 請教大神
[打印本頁]
作者:
jackduan2018
時間:
2023-10-13 16:39
標題:
單片機S2CON&=~S2TI; 請教大神
串口通訊里有這樣一個語句看不懂:S2CON&=~S2TI; 這條語句的目的是對寄存器 S2CON 的 S2TI位進行軟件清零;
它是不是等價于: S2CON&(~S2TI); ?
S2CON 不支持位尋址,那這個語句怎么還可以這么寫?這樣的操作得出來的結果會是什么 ?
求教大神,謝謝!
作者:
aking991
時間:
2023-10-14 08:43
S2TI定議時0x02,那對應的bit.1是1,那~S2TI就是把這個對應位取反即是0,值就等于0xFD,那么把S2CON這個0xFD相與,那么S2CON的bit.1也就是0,即是清發(fā)送標志,那樣寫沒毛病
作者:
joyb
時間:
2023-10-14 09:01
S2RI 定義為 0000 0001 即0x01
或者 sbit S2RI =S2CON^0//說明S2RI是寄存器 S2CON中的第幾位
S2TI 定義為 0000 0010 即0x02
或者 sbit S2TI =S2CON^1
這樣 當S2RI=1時 S2CON&S2RI 即為非0
當S2RI=0時 S2CON&S2RI 即為0
作者:
jackduan2018
時間:
2023-10-14 13:40
謝謝各位大神
大神就是大神 不用看就知道定義過了
S2RI是SCON里的一個位
但是在頭文件里把S2RI定義成了0X02,我沒看頭文件,所以怎么看也看不明白
謝謝各位大神
作者:
powerdruy
時間:
2023-10-26 18:35
教你一個套路,可以用在不能位尋址的寄存器上,
比如MSP430的GPIO輸出寄存器
#define BIT0 0x01
#define BIT1 0x02
#define BIT2 0x04
#define BIT3 0x08
P0 |= BIT0;//P0.0置1,P0.0口輸出1
P1 &=~BIT3;//P1.3清0,P1.3口輸出0
復制代碼
作者:
圣博朗西斯
時間:
2023-10-27 09:55
那樣寫的語法是沒問題的。對于支不支持位尋址應該還是支持位尋址吧,要不然會報錯的或者你看一下程序里有沒有宏定義
作者:
jackduan2018
時間:
2025-2-14 08:26
powerdruy 發(fā)表于 2023-10-26 18:35
教你一個套路,可以用在不能位尋址的寄存器上,
比如MSP430的GPIO輸出寄存器
謝謝大神,學習了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1