端口低配置寄存器寄存器的復位值為0X4444 4444,,復位值其實就是配置端口為浮空輸
入模式。STM32的CRL控制著每個IO端口(A~G)的低8位的模式。每
個IO端口的位占用CRL的4個位,高兩位為CNF,低兩位為MODE。這裏我們可以記住幾個
常用的配置,比如0X4表示模擬輸入模式(ADC用)、0X3表示推挽輸出模式(做輸出口用,
50M速率)、0X8表示上/下拉輸入模式(做輸入口用)、0XB表示復用輸出(使用IO口的第二
功能,50M速率)。
CRH的作用和CRL完全壹樣,只是CRL控制的是低8位輸出口,而CRH控制的是高8
位輸出口。這裏我們對CRH就不做詳細介紹了。
給個實例,比如我們要設置PORTC的11位為上拉輸入,12位為推挽輸出。代碼如下:
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;//PA8 推挽輸出
GPIOA->ODR|=1<<8;
//PA8 輸出高
再如:
GPIOC->CRH&=0XFFF00FFF;//清掉這2個位原來的設置,同時也不影響其他位的設置
GPIOC->CRH|=0X00038000; //PC11輸入,PC12輸出
GPIOC->ODR=1<<11;//PC11上拉
通過這3句話的配置,我們就設置了PC11為上拉輸入,PC12為推挽輸出