HALドライバーってなに?


C言語で書かれたペリフェラル(周辺機能)ドライバーです。ADC/DAC、通信(UART,SPI,I2C)、タイマー、RTC(リアルタイムクロック)などを使う為のC言語のライブラリです。普通はこのHALドライバーを使ってC/C++でプログラミングをします。STM32は"リッチペリフェラル"をセールスポイントにしていますのでペリフェラルの機能が豊富でとても多機能になっています。コストパーフォーマンスが良いのはとても嬉しいことですが、その反面パラメーターが非常に多く初期化がとても面倒で入門者のハードルが高くなっているのも事実です。


その面倒な初期化コードを生成するのがCubeMXというコードジェネレーターです。CubeMXはJavaで書かれたソフトウェアでコンパイラではありません。GUIを使ってクロック設定やペリフェラル設定を行うと、それを元にしてペリフェラルの初期化コードをC言語で出力します。HALドライバーとCubeMXはペアで使う事を前提に設計されていますので、ここでCubeMXを使ったプログラミングを体験してみてください。