GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..I)


#define HDC_SDA_IN()  {GPIOC->MODER&=~(3<<(9*2));GPIOC->MODER|=0<<9*2;}    //PC9輸入模式  

#define HDC_SDA_OUT() {GPIOC->MODER&=~(3<<(9*2));GPIOC->MODER|=1<<9*2;} //PC9輸出模式

通過參考手冊,查看GPIO寄存器,如下圖所示:

 

 解釋輸入輸出模式操作:

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為輸出模式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM