GPIOポート・モード・レジスタ(GPIOx_MODER)(X = A..I)

#define HDC_SDA_IN(){GPIOC-> MODER&=〜(3 * 2 <<(9)); GPIOC-> MODER | = 0 << 9 * 2;} // PC9入力モード  

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

下に示すように、リファレンスマニュアルによって、GPIOレジスタを参照してください。

 

 Oモードの動作説明:

HDC_SDA_IN():

          GPIOC-> MODER&=〜(3 * 2 <<(9)); // 3はバイナリ11として表される、2Y製(2 11×9 = 18を左:コンフィギュレーションビットは、ポート9 2Y + 1を決定し、すなわち19、18)、GPIOC-> MODERにインバースビット、これはそのようなGPIOC-> 19のMODERであり、18ビットのレジスタがクリアされます。

          GPIOC-> MODER | = 0 << 9 * 2; // 0は0に、すなわち18/19コンフィギュレーション・ビット・セット、2 9 * = 18を左、ポート9は、操作実施するように構成された入力モード

HDC_SDA_OUT():

          GPIOC-> MODER&=〜(3 * 2 <<(9)); // 3はバイナリ11として表される、2Y製(2 11×9 = 18を左:コンフィギュレーションビットは、ポート9 2Y + 1を決定し、すなわち19、18)、GPIOC-> MODERにインバースビット、これはそのようなGPIOC-> 19のMODERであり、18ビットのレジスタがクリアされます。

          GPIOC-> MODER | = 1 << 9 * 2; // 01 左* 9 2 = 18、すなわち19、18構成のセットは、01ビット、操作実施するように構成されたポート9 出力モード

 

おすすめ

転載: www.cnblogs.com/Kelvin-Li/p/12454711.html