メインコンテンツまでスキップ

STM32 を使い始める

STM32 ボードは、さまざまなアプリケーションに使用できる強力なマイクロコントローラー ボードです。 このチュートリアルでは、STM32 ボードのセットアップ方法を学びます。

GitHub

STM32 を選ぶ理由​

STM32 には、次のような特徴があります。

  • 高い処理能力
  • 安価なデバッガーで開発できる
  • 豊富な周辺機能
ヒント

Wi-Fi や Bluetooth を使いたい場合は ESP32、処理能力を重視する場合は STM32 が候補になります。 このチュートリアルでは ESP32 については説明しません。

esp32 と stm32: どちらのマイクロコントローラーが最適ですか?

必要なもの​

STM32 の使用を開始するには、次のものが必要です。

  • BlackPill/Bluepill STM32 ボード:
    • 安価なクローン BlackPill STM32 ボードは 4 ドル以下で購入できます。
  • ST-LINK V2/V3:
    • ファームウェアを基板に書き込むために使用します。
    • 安価なクローン ST-LINK V2 は 5 ドル以下で購入できます。
  • VSCode + PlatformIO、または Arduino IDE:
    • VSCode は公式サイトからダウンロードできます。
    • PlatformIO は、VSCode 拡張機能マーケットプレイスからインストールできます。
  • STM32CubeProgrammer

ブラックピルボード BlackPill STM32 ボード

DFU upload

BlackPill STM32 ボードは DFU をサポートしています。つまり、USB を使用してファームウェアをアップロードできますが、デバッグなどの便利な機能を使用するには ST-LINK が必要です。

おすすめの開発環境​

STM32 の開発には、次の組み合わせをお勧めします。

  • VSCode と PlatformIO
    • GitHub Copilot を使用すると、コードの提案を得ることができ、コードをより速く書くことができます。
  • ST-LINK V2 クローン
    • 非常に安い (< $5)
  • BlackPill STM32 ボード
    • 非常に安い (< $4)
    • DFU サポート
      • USB 経由でもファームウェアを書き込めます。
    • ブルーピルより強力
  • Arduinoフレームワーク
    • 使いやすい
    • 初心者にも取り組みやすい

ST-LINK V2 クローン

Arduino と STM32Cube の比較​

STM32 開発には、Arduino と STM32Cube という 2 つの一般的なフレームワークがあります。

備考

フレームワークは、マイコンのプログラムを開発するためのライブラリやツールをまとめたものです。

Arduino フレームワークと STM32Cube フレームワークの比較を次に示します。

比較項目Arduino フレームワークSTM32Cube フレームワーク
使いやすさとても簡単中程度
コミュニティサポート充実中程度
パフォーマンス中程度高い
ライブラリの充実度充実中程度
デバッグ基本的な機能高度な機能
構成シンプル複雑
IDEArduino IDE、VSCodeSTM32CubeIDE、VSCode
習得の難易度低い高い

それぞれの違いを詳しく見ていきます。

使いやすさ:

  • Arduino: シンプルで初心者に優しいことで知られています。
  • STM32Cube: Arduino ほど単純ではありませんが、CubeMX による構造化されたアプローチを提供し、構成とコード生成を容易にします。

コミュニティ サポート:

  • Arduino: 広範なリソース、チュートリアル、ライブラリを備えた大規模なコミュニティ。
  • STM32Cube: 成長を続けているコミュニティですが、Arduino ほど大きくはありません。

パフォーマンス:

  • Arduino: 機能はありますが、Arduino フレームワークのオーバーヘッドのため、一般に STM32Cube よりもパフォーマンスが低くなります。
  • STM32Cube: ハードウェア レジスタへの直接アクセスと最適化されたコード生成により、より高いパフォーマンスを提供します。

ライブラリの充実度:

  • Arduino: 幅広い用途に対応するライブラリが豊富にあります。
  • STM32Cube: ライブラリは増えていますが、用途によっては Arduino ほど選択肢が多くありません。

デバッグ:

  • Arduino: 基本的なデバッグ機能。多くの場合シリアル出力に限定されます。
  • STM32Cube: GDB および J-Link サポートを含む高度なデバッグ機能。

構成:

  • Arduino: 通常、特に基本的なプロジェクトの場合、より単純な構成。
  • STM32Cube: 特に高度な機能の場合、より複雑な構成オプション。

IDE:

  • Arduino: Arduino IDE または Arduino 拡張機能を備えた VSCode。
  • STM32Cube: STM32Cube 拡張機能を備えた STM32CubeIDE または VSCode。

習得の難易度:

  • Arduino: 初心者にとって学びやすい。
  • STM32Cube: マイクロコントローラーと組み込みシステムに関するより深い知識が必要です。

全体として、Arduino は初心者や単純なプロジェクトに最適な選択肢ですが、STM32Cube は高度なアプリケーション向けに、より高い柔軟性、パフォーマンス、機能を提供します。