當前位置:編程學習大全網 - 編程軟體 - 對於STM32,為什麽 GPIOA->CRH&=0X0F0FFFFF;的意思是PA13,15設置成輸入,在線等

對於STM32,為什麽 GPIOA->CRH&=0X0F0FFFFF;的意思是PA13,15設置成輸入,在線等

認真看下手冊,下面是我引用的壹段,應該能助妳理解了~~

端口低配置寄存器寄存器的復位值為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為推挽輸出

  • 上一篇:利達6804廣播模塊需要編碼嗎?
  • 下一篇:編程培訓宿遷
  • copyright 2024編程學習大全網