STM32单片机的CRL和CRH寄存器
這里寫目錄標(biāo)題
- 問題:
- 基礎(chǔ)知識:
- 解釋:
- 擴(kuò)展
- PA1為輸入(上/下拉)
- PA2為輸入(上/下拉)
- PA1為輸出(通用推挽輸出50MHZ)
- PA2為輸出(通用推挽輸出50MHZ)
問題:
當(dāng)32單片機(jī)進(jìn)行引腳分配時,需要了解該程序的功能。
基礎(chǔ)知識:
STM32 的每個 IO 端口都有 7 個寄存器來控制。他們分別是:
配置模式的 2 個 32 位的端口配置寄存器 CRL 和 CRH;
2 個 32 位的數(shù)據(jù)寄存器 IDR 和 ODR;
1 個 32 位的置位/復(fù)位寄存器BSRR;
一個 16 位的復(fù)位寄存器 BRR;
1 個 32 位的鎖存寄存器 LCKR;
我們常用的 IO 端口寄存器只有 4 個:CRL、CRH、IDR、ODR。CRL 和 CRH 控制著每個 IO 口的模式及輸出速率。
其中CRL配置規(guī)則
其中CRH配置規(guī)則
解釋:
1、輸入
GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8<<0;①前半段GPIOA->CRL&=0XFFFFFFF0;
利用“與”運(yùn)算,把這個位清0,同時不影響其他的位的設(shè)置。
此時把PA0設(shè)置成模擬輸入模式。
②后半段GPIOA->CRL|=8<<0;
意思就是將8(1000)左移0位(不移位),然后再與GPIOC->CRL進(jìn)行或運(yùn)算。
此時把PA0設(shè)置成上拉/下拉輸入模式。
2、輸出
GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=3<<0;①前半段GPIOA->CRL&=0XFFFFFFF0;
利用“與”運(yùn)算,把這個位清0,同時不影響其他的位的設(shè)置。
此時把PA0設(shè)置成模擬輸入模式。
②后半段GPIOA->CRL|=3<<0;
意思就是將3(0011)左移0位(不移位),然后再與GPIOC->CRL進(jìn)行或運(yùn)算。
此時把PA0設(shè)置成通用推挽輸出模式。
擴(kuò)展
PA1為輸入(上/下拉)
GPIOA->CRL&=0XFFFFFF0F;GPIOA->CRL|=8<<4;PA2為輸入(上/下拉)
GPIOA->CRL&=0XFFFFF0FF;GPIOA->CRL|=8<<8;PA1為輸出(通用推挽輸出50MHZ)
GPIOA->CRL&=0XFFFFFF0F;GPIOA->CRL|=3<<4;PA2為輸出(通用推挽輸出50MHZ)
GPIOA->CRL&=0XFFFFF0FF;GPIOA->CRL|=3<<8;以此類推。
總結(jié)
以上是生活随笔為你收集整理的STM32单片机的CRL和CRH寄存器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 救救家长:疫情封控下packetbeat
- 下一篇: DMZ主机作用