crh寄存器_STM32的CRH、CRL、ODR和IDR寄存器的使用总结
一、下載:
STM32F103中文參考手冊
二、CRH和CRL的介紹:
CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL用于控制GPIOX(X表示A---G)的低8位(Pin7----Pin0)。
三.CRH、CRL和ODR的使用:
1、
RCC->APB2ENR|=1<<2; ???//使能PORTA時鐘
GPIOA->CRH&=0XFFFFFFF0;//清除PA8該位原來的設置
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; ?,因為系統會默認端口輸出為低電平 。
RCC->APB2ENR|=1<<2; ???//使能PORTA時鐘
GPIOA->CRL&=0XFFFFF0FF;//清除PA2該位原來的設置
GPIOA->CRL|=0X00000300;//PA2?推挽輸出
GPIOA->ODR|=1<<2; ?????//PA2?輸出高
以上可以看出如果控制低八位的IO,就控制CRL寄存器,若要控制高八位IO口就需要控制CRH寄存器。
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;,因為系統會默認端口輸入為低電平。
3、IDR的使用:
IDR是一個端口輸入數據寄存器,只用了低16位。該寄存器為只讀寄存器,并且只能以16位的形式讀出。讀出的值為對應IO口的狀態。
備注:參考STM32中文參考手冊P67--P69
本網站轉載的所有的文章、圖片、音頻視頻文件等資料的版權歸版權所有人所有,本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如果本網所選內容的文章作者及編輯認為其作品不宜公開自由傳播,或不應無償使用,請及時通過電子郵件或電話通知我們,以迅速采取適當措施,避免給雙方造成不必要的經濟損失。
總結
以上是生活随笔為你收集整理的crh寄存器_STM32的CRH、CRL、ODR和IDR寄存器的使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的家乡潍坊HTML静态网页 学生个人网
- 下一篇: Riak - 使用篇(1)