rtthread GPIOアプリケーション

図1に示すように、ピン番号を取得します

#define PIN_NUM GET_PIN(F、10)

 

GET_PINはdrv_gpio.h内で定義されています

#define GET_PIN(PORTx、PIN)(rt_base_t)((16 *(((rt_base_t)__ STM32_PORT(PORTx) - (rt_base_t)GPIOA)/(0x0400UL)))+ PIN)

 

2、GPIOモードrt_pin_mode(KEY_PIN、PIN_MODE_INPUT_PULLUP)が設けられています。

入力1:プルアップ、プルダウン、アナログ、浮動

出力2:プルアップ、プルダウン、プル、オープンドレイン

3割り込み:立ち上がりエッジ、立ち下がりエッジ、両エッジ、ハイ、ロー、トリガー

#define PIN_LOWは0x00
に#define PIN_HIGHは0x01

#define PIN_MODE_OUTPUTは0x00
の#define PIN_MODE_INPUTが0x01
の#define PIN_MODE_INPUT_PULLUP 0x02の
に#define PIN_MODE_INPUT_PULLDOWN 0x03の
に#define PIN_MODE_OUTPUT_OD 0x04の

#define PIN_IRQ_MODE_RISINGは0x00
の#define PIN_IRQ_MODE_FALLINGが0x01
の#define PIN_IRQ_MODE_RISING_FALLING 0x02の
に#define PIN_IRQ_MODE_HIGH_LEVEL 0x03の
に#define PIN_IRQ_MODE_LOW_LEVEL 0x04の

#define PIN_IRQ_DISABLEは0x00
に#define PIN_IRQ_ENABLEは0x01

図3に示すように、読み出しまたは出力レベルGPIOを設定します

rt_pin_write(PIN_NUM、PIN_HIGH); //出力ハイ

 

4、割り込みモードのGPIOを設定します

rt_pin_mode(KEY_PIN、PIN_MODE_INPUT_PULLUP)。
rt_pin_attach_irq(KEY_PIN、PIN_IRQ_MODE_FALLING、key_callback、(void *型) "のLCDバックライト");
rt_pin_irq_enable(KEY_PIN、PIN_IRQ_ENABLE)。

空隙key_callback(ボイド*引数)//割り込みコールバック
{
CHAR *引数= A。

}

 

おすすめ

転載: www.cnblogs.com/lazybeee/p/11161660.html