STM32F303K8 タイマー割り込み
開発環境
評価ボード | Nucleo STM32F303K8 |
IDE | System Workbench for STM32 (SW4STM32) |
Library | Hal Library |
OS | windows 10 pro |
タイマー割り込みを設定します。
ここで一つ注意点が、HALではARMのSystem tick timerを用いた、1ms割り込みが常に動作しています。なので1msの倍数の割り込みを作るなら、stm32f3xx_it.cのSysTick_Handlerを使ってやればいいかと思います。
stm32f3xx_it.c
/* USER CODE BEGIN 0 */ #define TIMER0 100 void timer0(void); /* USER CODE END 0 */ void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ static uint16_t count = 0; /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); HAL_SYSTICK_IRQHandler(); /* USER CODE BEGIN SysTick_IRQn 1 */ if(count == TIMER0) { timer0(); count = 0; } count++; /* USER CODE END SysTick_IRQn 1 */ } /* USER CODE BEGIN 1 */ void timer0(void) { HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin); } /* USER CODE END 1 */
これで100msの割り込みができましたが、なんかしっくりきませんね。
ちなみに出力
20170821の記事