このガイドの使い方
当ブログではSTM32マイコンの実装ガイドを継続的に公開しており、通信・DMA・RTOS・低消費電力・アナログ計測・エッジAI・デバッグの7本が揃いました。各記事はST公式のアプリケーションノートやリファレンスマニュアルを一次資料として、STM32CubeMXの設定手順とHALベースのCコードまで踏み込んだ実務者向けの内容です。
このページはその総目次です。「いま自分がどのフェーズで詰まっているか」から逆引きできるように、開発の流れに沿って各記事の守備範囲と読みどころを整理しました。
開発フェーズ別・記事の読み方マップ
| いまの状況 | 読む記事 |
|---|---|
| センサー・モジュールと通信したい | UART・I2C・SPI・CAN実装ガイド |
| 通信は動いたがCPUが重い/取りこぼす | DMA完全ガイド |
| 機能が増えてスーパーループが破綻気味 | FreeRTOS入門 |
| 電池で年単位の駆動が必要 | 低消費電力モード完全ガイド |
| ADCの測定値が理論通りにならない | STM32G4アナログ計測の罠 |
| 学習済みAIモデルをマイコンに載せたい | STM32Cube.AIでTinyML |
| ST-LINKが突然繋がらなくなった | ST-LINK救出ガイド |
1. ペリフェラル通信を実装する
STM32マイコンのUART・I2C・SPI・CAN通信 実装ガイド
4大通信ペリフェラルの使い分けから、STM32CubeMXでの設定、HALライブラリを使ったCサンプルコードまでを1本にまとめた通信の基礎記事です。ボーレート不一致やI2Cプルアップ、SPIモード(CPOL/CPHA)、CANの終端抵抗といった「動かない時の定番チェックポイント」も網羅しています。
こんな時に: 新規基板の立ち上げでセンサー・無線モジュール・外部ICとの接続を最短で動かしたい時。
2. DMAでCPU負荷を下げる
STM32 DMA 完全ガイド|UART・SPI・ADCとの連携でCPU負荷を最小化
DMAコントローラの基礎(チャネル方式/ストリーム方式)から、CubeMX設定、Normal/Circularモード、そして実務の定番であるUART受信DMA+IDLE割込みによる可変長フレーム受信、SPI大容量転送、ADC連続サンプリングまでを網羅。STM32H7のD-CacheとDMAバッファ不整合という上級者向けの落とし穴にも触れています。
こんな時に: 通信・計測の頻度が上がりCPU処理が追いつかない時。ポーリング実装から本番品質へ引き上げる時。
3. RTOSで処理を並行化する
STM32 + FreeRTOS 入門|タスク・キュー・セマフォを使ったRTOS実装ガイド
STM32CubeMXでFreeRTOSを有効化し、CMSIS-OS v2ベースでタスク・キュー・セマフォ・ミューテックスを実装する入門記事です。ISRからのFromISR系API使用や割り込み優先度(configMAX_SYSCALL_INTERRUPT_PRIORITY)といった、初学者がHardFaultを踏みがちなポイントを重点的に解説しています。
こんな時に: センサー監視・通信・表示・制御が並行し、whileループでの管理が限界に来た時。
4. バッテリー駆動・低消費電力設計
STM32 低消費電力モード完全ガイド|バッテリー駆動を年単位で実現する
STM32L4のRun/Sleep/Stop 0/1/2/Standby/Shutdownの7モードを体系的に整理し、HAL APIでのモード遷移、RTC・WKUPピン・LPUARTによるウェイクアップ、CR2032での寿命試算、実装の落とし穴までを扱う低消費電力設計の決定版です。
こんな時に: 電池駆動のIoTデバイスで「月単位」ではなく「年単位」の稼働が要求された時。
5. 内蔵アナログで精度を出す
STM32G4 内蔵アナログ計測誤差の罠|R_AINとサンプリング時間の関係
STM32G4の内蔵OPAMP・COMP・高速ADCを使う際に精度を左右する「ソース抵抗とサンプリング時間」の関係を、AN2834とデータシートを一次資料に解説。OPAMPのVoltage Follower接続による対策やErrataの注意点まで踏み込んだ、アナログフロントエンド設計者向けの記事です。
こんな時に: ADCの読み値が理論値とずれる・ばらつく原因を突き止めたい時。外付けアンプを減らしてコストダウンしたい時。
6. エッジAI(TinyML)を載せる
STM32Cube.AI で TinyML を量産品質に|モデルのCコード化とメモリ配置最適化
Keras/TFLite/ONNXの学習済みモデルをSTM32Cube.AIでCコードに変換し、SRAM・内蔵Flash・外部QSPI Flashへの重み配置をリンカスクリプトで最適化する手順を解説。MPU/D-Cache設定からNPU搭載のSTM32N6への展望まで、AN5050/UM2526を一次資料としています。
こんな時に: PoCで作ったAIモデルを、量産マイコンのメモリ制約の中に収める必要が出た時。
7. デバッガが繋がらない時に読む
STM32でST-LINKが突然繋がらなくなった時の救出ガイド
「Target was not detected」からの復旧手順を、原因別(SWDピンのGPIO誤定義・Stop/Standbyモード切断・CubeMX設定忘れ・ST-LINK本体/クローン品の問題)に体系化。Connect Under ResetとBOOT0によるSystem Memory Bootloader起動という2大復旧手段を軸に、DBGMCUレジスタによる予防策まで解説しています。
こんな時に: 昨日まで書き込めていたボードに突然接続できなくなった時。ブックマーク推奨の「お守り」記事です。
今後追加予定のテーマ
本ガイドは記事の追加にあわせて更新していきます。現在、エッジAI向け新シリーズや新しいRTOSの選択肢、組込みセキュリティ規制対応など、開発現場の関心が高いテーマを準備中です。