CCWO Embedded Space

CCWOの日々の開発を発信するブログ

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の割り込みができましたが、なんかしっくりきませんね。
ちなみに出力
f:id:CCWO:20170821165608j:plain

20170821の記事