crh寄存器_关于CRH、CRL、ODR和IDR寄存器的使用总结
關于
CRH
、
CRL
、
ODR
和
IDR
寄存器的使用總結
一.
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
時鐘
GPIOA->CRH&=0XFFFFFFF0;//
清除該位原來的設置
GPIOA->CRH|=0X00000003;//PA8
推挽輸出
GPIOA->ODR|=1<<8;
//PA8
輸出高
由以上代碼看出,
PA8
設置成了推挽輸出。大家都知道一個端口可以輸出高電平,也可以
輸出低電平,
而
GPIOA->ODR|=1<<8;
這個表達式就把
PA8
設置成了在空閑的時候輸出高
電平;
GPIOA->ODR|=0<<8;
這個表達式,把
PA8
設置成了在空閑的時候輸出低電平。
如
果
想
設
置
PA8
為
推
挽
輸
出
,
并
且
希
望
輸
出
為
低
電
平
,
可
以
不
要
這
個
表
達
式
GPIOA->ODR|=0<<8;
,因為系統會默認端口輸出為低電平
。
2.
RCC->APB2ENR|=1<<2;
//
使能
PORTA
時鐘
GPIOA->CRH&=0XFF0FFFFF;
GPIOA->CRH|=0X00800000;?//PA13
設置成上拉
/
下拉輸入
GPIOA->ODR|=1<<13;
//PA13
上拉
由以上代碼看出,
PA13
設置成了上拉輸入,即輸入高電平。大家都知道,一個端口設置成
了輸入模式,那么它可以輸入高電平,也可以輸入低電平。
GPIOA->ODR|=1<<13;
這
個表達式把
PA13
設置成了上拉模式,
即在空閑的時候輸入高電平;
GPIOA->ODR|=0<<13;
這個表達式把
PA13
設置成了下拉模式,即在空閑的時候輸入低電平。
如
果
想
設
置
PA13
為
輸
入
模
式
,
并
且
希
望
輸
入
低
電
平
,
可
以
不
要
這
個
表
達
式
GPIOA->ODR|=0<<13;
,因為系統會默認端口輸入為低電平。
三
.IDR
的使用:
IDR
是一個端口輸入數據寄存器,
只用了低
16
位。
該寄存器為只讀寄存器,
并且只能以
16
位的形式讀出。讀出的值為對應
IO
口的狀態。
注:
IDR
的使用我只知道這么多,具體的使用,我還沒有實際操作過,我也很想知道
IDR
具體的使用,希望我在這里拋磚,能引來各位高手的玉!
總結
以上是生活随笔為你收集整理的crh寄存器_关于CRH、CRL、ODR和IDR寄存器的使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 思岚APOLLO机器人底盘 助力服务机器
- 下一篇: 思岚发布新品TOF激光雷达——RPLID