LoginSignup
0
1

More than 3 years have passed since last update.

Zephyr > GPIO > STM32L476 > User Button (PC13)の押下検知 > プロジェクトとdtsでのボタン定義 (user_button)

Last updated at Posted at 2020-01-20
動作環境 
Ubuntu 18.04 LTS
Board: STM32L476 Nucleo_64 (hereafter STM32L476)
Zephyr 2.1.99

概要

  • ボタンの押下処理を試した
    • samples/basic/button/
  • User Button (PC13)が使われる

ボード

USER_PB : PC13

という定義がある。

サンプルプロジェクトの実行

$ west build -p auto -b nucleo_l476rg samples/basic/button/
$ west flash
$ west flash

(Note: west flashは一回だと失敗することがあるので二回実施)。

別のターミナルにて下記を実行する。

$ sudo screen /dev/ttyACM0 115200

User Button (青色のボンタ)押下のたびに下記の出力一行が追加される。

Button pressed at 1149016013
Button pressed at 1226942740
Button pressed at 1261369171

ボタンの定義

./boards/arm/nucleo_l476rg/nucleo_l476rg.dtsにてボタンの定義がされている。

    gpio_keys {
        compatible = "gpio-keys";
        user_button: button {
            label = "User";
            gpios = <&gpioc 13 GPIO_INT_ACTIVE_LOW>;
        };
    };

west buildの後には./build/zephyr/include/generated/generated_dts_board.confが生成される。そこに定義が見つかる。

DT_GPIO_KEYS_BUTTON_GPIOS_CONTROLLER="GPIOC"
DT_ALIAS_SW0_GPIOS_CONTROLLER="GPIOC"
DT_GPIO_KEYS_SW0_GPIOS_CONTROLLER="GPIOC"
DT_GPIO_KEYS_BUTTON_GPIOS_PIN=13
DT_ALIAS_SW0_GPIOS_PIN=13
DT_GPIO_KEYS_SW0_GPIOS_PIN=13
...

これらの定義はsrc/main.cで使われている。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1