SysTick割り込みアプリ【STM32のSysTick】

ペリフェラルを使わないARMコアに備わったSysTickタイマを利用した割り込みのアプリケーションです。

めかのとろ

Systick割り込みをつかったLED点滅プログラムです。
Systickタイマで割り込みを1秒毎に発生させてLEDのON/OFFを切り替えています。

めかのとろ

システムクロック72MHzを8分周したクロックをsystickタイマとして割り込みを発生させて処理させるプログラムです。

めかのとろ

割り込みハンドラSysTick_Handler内ではトグルフラグを切り替えるだけのシンプルなプログラムです。メインプログラム内でトグルフラグの状態に応じて出力LEDを切り替えます。

SysTick割り込み出力LED

設定仕様:
出力:PA5: プッシュプル出力+500Ω+LED

コラム

SysTick割り込みを使用することができるのはFreeRTOSを使用しない環境であることが条件です。FreeRTOS自体がOSのタイマにSysTickをすでに使用しているからです。当サイトでの開発環境はFreeRTOSを使用する設定となっていますので、SysTick割り込みを使用する場合はFreeRTOSを無効にする必要があります

めかのとろ

「Project」- 「Properties」-「C/C++ General」-「Paths and Symbols」の順でSource Locationタブを選択します。…\Sourceフォルダのパスを一時的に外してFreeRTOSを無効にしておきます。アプリプログラム内にFreeRTOS関連のヘッダファイルを含んでいなくても、このパスが通っているとどうもSysTickはFreeRTOSと干渉して動作しないようです。

めかのとろ

あるいは、「Source」フォルダにあるFreeRTOSConfig.h内でシステム割り込みハンドラ名をFreeRTOS用(SVC_Handler/PendSV_Handler/SysTic_Handlerの3行)に書き替えているものをコメントアウトしてください。