GPIOオンディレイ入力アプリ【STM32のGPIO実用例】
![](https://depfields.com/wp-content/uploads/2020/06/microcontroller-3871944_640.jpg)
オンディレイ入力
Lチカが成功したあとは、STM32GPIOの入力の実用例にチャタリング防止オンディレイ入力と未使用ピン処理例のアプリを紹介します。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
チャタリング防止用にオンディレイ入力機能および未使用ピンの処理を追加したプログラムです。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
チャタリングとはスイッチを入力したとき、接点に機械的な振動が発生してごく短い間隔でON/OFFの状態になることです。
![](https://depfields.com/wp-content/uploads/2020/06/chattering.jpg)
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
オンディレイ入力とは入力されてから一定期間たってからONにするものです。オンディレイ期間⊿よりも短い入力は無視されます。
![](https://depfields.com/wp-content/uploads/2020/06/ondelay-input.jpg)
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
オンディレイ入力は産業用機器制御向けのPLCプログラミングに精通している人にとってはなじみのあるものですが、組み込みアプリでも有用です。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
このアプリではスイッチがONしてから1000ms後に出力がONになるオンディレイタイマを設けています。delay_ms関数で設定した期間待機するタイマを使用しています。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
delay_ms(1)としているので無限ループは1msのサイクルとなります。delay_ms関数はdelay.cで定義された関数です。この関数を使用する場合はdelay.cとdelay.hをアプリプログラムと同じ場所にコピーしておき、ヘッダファイルdelay.hで呼び込むようにします。
未使用ピンの処理
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
ほとんどの場合、マイコンのピンは一部のみを使用して、残りは使用しません。使用するピンは定義をするのですが、未使用ピンはどうすればよいでしょうか。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
未使用ピンは何もしなくてもマイコンの機能自体には問題がないのですが、ノイズ等で誤作動や破壊の可能性がありますので特に製品に組み込む場合は入力か出力に定義して処理をしておくことが奨励されています。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
未使用ピンの処理方法は諸説ありますが、ここでは明示的にピンは出力とし、さらにLレベルに指定しています。