crh寄存器_关于CRH、CRL、ODR和IDR寄存器的使用总结
關(guān)于
CRH
、
CRL
、
ODR
和
IDR
寄存器的使用總結(jié)
一.
CRH
和
CRL
的使用:
CRH
和
CRL
的使用基本相同,
CRH
用于控制
GPIOX
(
X
表示
A---G
)的高
8
位
(
Pin15---Pin8
)
,
而
CRL
用于控制
GPIOX
(
X
表示
A---G
)的低
8
位(
Pin7----Pin0
)
。
二
.ODR
的使用:
1.
RCC->APB2ENR|=1<<2;
//
使能
PORTA
時(shí)鐘
GPIOA->CRH&=0XFFFFFFF0;//
清除該位原來(lái)的設(shè)置
GPIOA->CRH|=0X00000003;//PA8
推挽輸出
GPIOA->ODR|=1<<8;
//PA8
輸出高
由以上代碼看出,
PA8
設(shè)置成了推挽輸出。大家都知道一個(gè)端口可以輸出高電平,也可以
輸出低電平,
而
GPIOA->ODR|=1<<8;
這個(gè)表達(dá)式就把
PA8
設(shè)置成了在空閑的時(shí)候輸出高
電平;
GPIOA->ODR|=0<<8;
這個(gè)表達(dá)式,把
PA8
設(shè)置成了在空閑的時(shí)候輸出低電平。
如
果
想
設(shè)
置
PA8
為
推
挽
輸
出
,
并
且
希
望
輸
出
為
低
電
平
,
可
以
不
要
這
個(gè)
表
達(dá)
式
GPIOA->ODR|=0<<8;
,因?yàn)橄到y(tǒng)會(huì)默認(rèn)端口輸出為低電平
。
2.
RCC->APB2ENR|=1<<2;
//
使能
PORTA
時(shí)鐘
GPIOA->CRH&=0XFF0FFFFF;
GPIOA->CRH|=0X00800000;?//PA13
設(shè)置成上拉
/
下拉輸入
GPIOA->ODR|=1<<13;
//PA13
上拉
由以上代碼看出,
PA13
設(shè)置成了上拉輸入,即輸入高電平。大家都知道,一個(gè)端口設(shè)置成
了輸入模式,那么它可以輸入高電平,也可以輸入低電平。
GPIOA->ODR|=1<<13;
這
個(gè)表達(dá)式把
PA13
設(shè)置成了上拉模式,
即在空閑的時(shí)候輸入高電平;
GPIOA->ODR|=0<<13;
這個(gè)表達(dá)式把
PA13
設(shè)置成了下拉模式,即在空閑的時(shí)候輸入低電平。
如
果
想
設(shè)
置
PA13
為
輸
入
模
式
,
并
且
希
望
輸
入
低
電
平
,
可
以
不
要
這
個(gè)
表
達(dá)
式
GPIOA->ODR|=0<<13;
,因?yàn)橄到y(tǒng)會(huì)默認(rèn)端口輸入為低電平。
三
.IDR
的使用:
IDR
是一個(gè)端口輸入數(shù)據(jù)寄存器,
只用了低
16
位。
該寄存器為只讀寄存器,
并且只能以
16
位的形式讀出。讀出的值為對(duì)應(yīng)
IO
口的狀態(tài)。
注:
IDR
的使用我只知道這么多,具體的使用,我還沒(méi)有實(shí)際操作過(guò),我也很想知道
IDR
具體的使用,希望我在這里拋磚,能引來(lái)各位高手的玉!
總結(jié)
以上是生活随笔為你收集整理的crh寄存器_关于CRH、CRL、ODR和IDR寄存器的使用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 思岚APOLLO机器人底盘 助力服务机器
- 下一篇: 思岚发布新品TOF激光雷达——RPLID