SysTick割り込みアプリ【STM32のSysTick】
![](https://depfields.com/wp-content/uploads/2020/06/2783744_t.jpg)
ペリフェラルを使わないARMコアに備わったSysTickタイマを利用した割り込みのアプリケーションです。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
Systick割り込みをつかったLED点滅プログラムです。
Systickタイマで割り込みを1秒毎に発生させてLEDのON/OFFを切り替えています。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
システムクロック72MHzを8分周したクロックをsystickタイマとして割り込みを発生させて処理させるプログラムです。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
割り込みハンドラSysTick_Handler内ではトグルフラグを切り替えるだけのシンプルなプログラムです。メインプログラム内でトグルフラグの状態に応じて出力LEDを切り替えます。
![](https://depfields.com/wp-content/uploads/2020/06/gpio_NUCLEO.jpg)
設定仕様:
出力:PA5: プッシュプル出力+500Ω+LED
SysTick割り込みを使用することができるのはFreeRTOSを使用しない環境であることが条件です。FreeRTOS自体がOSのタイマにSysTickをすでに使用しているからです。当サイトでの開発環境はFreeRTOSを使用する設定となっていますので、SysTick割り込みを使用する場合はFreeRTOSを無効にする必要があります。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
「Project」- 「Properties」-「C/C++ General」-「Paths and Symbols」の順で「Source Location」タブを選択します。…\Sourceフォルダのパスを一時的に外してFreeRTOSを無効にしておきます。アプリプログラム内にFreeRTOS関連のヘッダファイルを含んでいなくても、このパスが通っているとどうもSysTickはFreeRTOSと干渉して動作しないようです。
![](https://depfields.com/wp-content/uploads/2020/05/instructor.jpg)
あるいは、「Source」フォルダにあるFreeRTOSConfig.h内でシステム割り込みハンドラ名をFreeRTOS用(SVC_Handler/PendSV_Handler/SysTic_Handlerの3行)に書き替えているものをコメントアウトしてください。