STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (7) 割り込みを使ってみよう
STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (6) UARTを使ってみよう(2)の続きです。
シリアル通信で操作できるが、ボタンを押しても動きません。
今度は、シリアル通信で数字を入れても、ボタンを押しても動くようにしてみましょう。
そのためには、割り込みというのを使います。
割り込みとは、作業中に別の緊急案件を対応することを指します。
今回は、シリアル通信で数字を入れたら対応する。
ただ、ボタンを押しても対応するよ
というプログラムを作ります。
HAL_GPIO_EXTI_Callbackが割り込みになります。
これを今回入れたいところに記述しようと思います
が・・・うまく認識されないですね。
なので、mainの中で書いてみましょう。
すると、認識されます。
このままプログラムを作っていきましょう。
GPIO_PinにボタンであるGPIO_PIN_13を割り当てます。
そのうえで、以前書いた「もし、ボタンが認識されたらLEDが反転する」プログラムをを入れます。
最後に、このプログラムを、適切な場所である「/* USER CODE BEGIN 4 */」に移動させます。
そのうえで、これをプログラムとして動くように、頭に「void」、お知りに、「uint16_t」と入れます。
これでプログラムを関数化したことを意味します。
関数ってなんだろう??
関数は、モジュール化して、簡単に使えるようにするとわたしは思っており
void ~()
{}
これで一つのモジュールを作っています。
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_13){
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
}
}
/* USER CODE END 4 */
これで、ボタンを押したら、LEDが反転するし、シリアル通信で数字を打ってもLEDが点灯、消灯しますね。
Author And Source
この問題について(STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (7) 割り込みを使ってみよう), 我々は、より多くの情報をここで見つけました https://qiita.com/usashirou/items/0bcb008ef83a159538dd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .