GPIO 端口模式寄存器 (GPIOx_MODER)

#define SDIO_IN()  {GPIOA->MODER&=~(3<<(7*2));GPIOA->MODER|=0<<7*2;}    //PB7輸入模式
#define SDIO_OUT() {GPIOA->MODER&=~(3<<(7*2));GPIOA->MODER|=1<<7*2;} //PB7輸出模式

#define RTD2553_SDIO    PAout(7) //SDIO
#define READ_SDIO       PAin(7) //SDIO
#define RTD2553_CS      PAout(4) //CS
#define RTD2553_CLK     PAout(5) //CLK

 解釋輸入輸出模式操作:

HDC_SDA_IN() :

          GPIOC->MODER&=~(3<<(9*2));   //3的二進制表示爲11,將11左移2*9=18位(由2y:2y+1確定端口9的配置位,即第19、18位),取反後與上GPIOC->MODER;此操作是使得GPIOC->MODER的19、18位寄存器清零。

          GPIOC->MODER|=0<<9*2;         //0左移9*2=18位,即配置位18/19置爲0;此次操作實現配置端口9爲輸入模式

HDC_SDA_OUT() :

          GPIOC->MODER&=~(3<<(9*2));   //3的二進制表示爲11,將11左移2*9=18位(由2y:2y+1確定端口9的配置位,即第19、18位),取反後與上GPIOC->MODER;此操作是使得GPIOC->MODER的19、18位寄存器清零。

          GPIOC->MODER|=1<<9*2;         //01左移9*2=18位,即配置位19、18置爲01;此次操作實現配置端口9爲輸出模式

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章