
実習・Cより開発効率アップ! C++言語によるSTMマイコンのプログラミング入門(STM32CubeIDE を利用)【教材キット付き】
実習・Cより開発効率アップ! C++言語によるSTMマイコンのプログラミング入門(STM32CubeIDE を利用)【教材キット付き】
|
![]() ![]() ![]() |
【開催日】2025年10月30日(木) 10:00-17:00 1日コース
【セミナNo.】ES25-0090 【受講料】28,000円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]
【セミナNo.】ES25-0090 【受講料】28,000円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]

このセミナは,従来のフリーで使えるプログラム開発環境であるMbed,Keil Studio Cloud(注) を利用していたセミナを,STM32CubeIDE(これもフリーで使える)を利用するように内容を改変したものである.加えて,STM32CubeIDE はC++17 などの新しいC++コンパイラにも対応しているので,C++の新しい機能も追加した内容になっている.
C++はC に比べて習得が難しいと思われているが,ポイントさえ適切に押えれば,ほんの少しの努力でC++を使えるようになる.C++を使えるようになれば,C よりもプログラミングが楽になり,効率のよいプログラム開発が可能になる.本セミナでは,組込みシステムのマイコンのプログラムを作ることを念頭におき,実習を通して,C++言語を使って効率の良く楽にプログラムを開発する手法について学ぶ.
ところで,マイコンのプログラム開発はC 言語で十分できるので,なぜC++言語を使うのかという疑問がわくかもしれない.C++言語を使うことの最大のメリットはクラス(class)を使えることである.クラスを適切に使えば,プログラムを完成させるまでの効率を大きくアップできる.たとえば,配列を使ったプログラムは原因不明の実行時エラーが発生し,デバッグで悩まされることがよくある.一方,C++言語を使えば,配列に相当するクラスで,インデックスが配列の範囲を越えないように監視できるようなクラスを作ることができる.これは一例で,クラスを使うメリットはそれ以外にも多い.
このセミナでは,C++の標準クラスライブラリであるSTL(Standard Template Library)の簡単な使い方の例や,クラスのほかにもC++言語の便利な機能 ― 関数の引数の参照渡し,template 関数,関数のオーバーロード,など ― についても取り上げる.
なお,STM32CubeIDE にはSTM32CubeMX というグラフィカルな初期化コード生成ツールが組み込まれている.これは便利なツールであるが,一方で,ソース・コードを記述する際に,決まった場所に自分のコードを書かなければならないなどの制限も多い.そのため,このセミナでは基本的には,STM32CubeMX を使わない.
なお,このセミナでは,Nucleo-F446 のペリフェラルに関するプログラミングの解説は行わない.ペリフェラルに関する C++ によるプログラミングに関心のある方は,翌日に開催される『実習・STMマイコン内蔵ペリフェラルを活用するためのC++プログラミング』を受講することを勧める.
(注)Mbed,Keil Studio Cloud とは,クラウドベースのArm マイコンのプログラム開発環境で,コードサイズの制限もなく,無償で使うことができる.
※ このセミナでは,事前にブレッド・ボード上に組み立てた教材を使います.そのため,電子回路組立の経験がない方でも参加できます.
※ マイコン・ボード Nucleo-F446RE,実装済みのブレッド・ボード,講師作成のプログラム,およびセミナで作成したプログラムはお持ち帰り可能です.
●このセミナでは割引プランがございます…マイコン・ボードをお持ちの方はご検討ください
割引プランをご希望の方は,申込後,『割引プランで受講希望』 とメールでご返信ください.マイコン・ボードは事務局貸し出し品を使用して受講いただきます.受講料金は\3,000割引【25,000円(税込)】でご参加いただけます.
C++はC に比べて習得が難しいと思われているが,ポイントさえ適切に押えれば,ほんの少しの努力でC++を使えるようになる.C++を使えるようになれば,C よりもプログラミングが楽になり,効率のよいプログラム開発が可能になる.本セミナでは,組込みシステムのマイコンのプログラムを作ることを念頭におき,実習を通して,C++言語を使って効率の良く楽にプログラムを開発する手法について学ぶ.
ところで,マイコンのプログラム開発はC 言語で十分できるので,なぜC++言語を使うのかという疑問がわくかもしれない.C++言語を使うことの最大のメリットはクラス(class)を使えることである.クラスを適切に使えば,プログラムを完成させるまでの効率を大きくアップできる.たとえば,配列を使ったプログラムは原因不明の実行時エラーが発生し,デバッグで悩まされることがよくある.一方,C++言語を使えば,配列に相当するクラスで,インデックスが配列の範囲を越えないように監視できるようなクラスを作ることができる.これは一例で,クラスを使うメリットはそれ以外にも多い.
このセミナでは,C++の標準クラスライブラリであるSTL(Standard Template Library)の簡単な使い方の例や,クラスのほかにもC++言語の便利な機能 ― 関数の引数の参照渡し,template 関数,関数のオーバーロード,など ― についても取り上げる.
なお,STM32CubeIDE にはSTM32CubeMX というグラフィカルな初期化コード生成ツールが組み込まれている.これは便利なツールであるが,一方で,ソース・コードを記述する際に,決まった場所に自分のコードを書かなければならないなどの制限も多い.そのため,このセミナでは基本的には,STM32CubeMX を使わない.
なお,このセミナでは,Nucleo-F446 のペリフェラルに関するプログラミングの解説は行わない.ペリフェラルに関する C++ によるプログラミングに関心のある方は,翌日に開催される『実習・STMマイコン内蔵ペリフェラルを活用するためのC++プログラミング』を受講することを勧める.
(注)Mbed,Keil Studio Cloud とは,クラウドベースのArm マイコンのプログラム開発環境で,コードサイズの制限もなく,無償で使うことができる.
※ このセミナでは,事前にブレッド・ボード上に組み立てた教材を使います.そのため,電子回路組立の経験がない方でも参加できます.
※ マイコン・ボード Nucleo-F446RE,実装済みのブレッド・ボード,講師作成のプログラム,およびセミナで作成したプログラムはお持ち帰り可能です.
●このセミナでは割引プランがございます…マイコン・ボードをお持ちの方はご検討ください
割引プランをご希望の方は,申込後,『割引プランで受講希望』 とメールでご返信ください.マイコン・ボードは事務局貸し出し品を使用して受講いただきます.受講料金は\3,000割引【25,000円(税込)】でご参加いただけます.
●対象聴講者
・ STM32CubeIDE を利用してC++ 言語でSTM マイコンのプログラムを作りたい方.
・ マイコンのプログラム開発で,主としてC 言語でプログラムを作っているが,
C++言語も使おうと考えている方.
・ C++言語は使っており,他の人が作ったクラスも使っているが,
自作のクラスは作ったことがない,または作ったことはあるがその経験が浅い方.
・ マイコンのペリフェラルを使うためのクラスを作りたい方.
・ 組込みシステム開発で,C++言語を使ってプログラム開発の効率を上げたい方.
●講演の目標
・ STM32CubeIDE を使いC++ 言語でプログラムを作れるようになる.
・ C++ 言語の便利な機能を活用して,効率よくプログラムを作れるようになる.
・ 自作のクラスを作れるようになる.
・ 既存のクラスを継承する派生クラスを作れるようになる.
・ マイコンのペリフェラルに対応するクラスを作るための基礎を習得できる.
●内容
1.イントロダクション
・なぜC ではなくC++なのか
・STM32CubeIDE によるプログラム開発法
・STM32CubeIDE でprintf を使う方法
2.C++ を有効に使うための準備
・関数の引数として参照を使う
・関数のオーバーロード(多重定義)
・マイコンプログラミングに役立つSTL(Standard Template Library)
・動的メモリ領域の使い方とnew 演算子
3.関数template の使い方
・型(type)をtemplate の引数にする場合
・整数をtemplate の引数にする場合
4.class の基礎
・class の考え方と用語の整理
・コンストラクタとデストラクタ
・ アクセス指定子(public,private)
・ クラスのメンバの初期化
・ コピーコンストラクタと代入演算子
・ 演算子のオーバーロード
・ explicit の使い方
・ static データメンバとstatic メンバ関数
・ クラス内に割込みサービスルーチンを記述する
5.class の継承
・ 派生クラス
・ 仮想関数と純粋仮想関数
6.マイコンのプログラミングに役立つclass の事例紹介
・マイコン内蔵のAD 変換器を使うクラス(継承の例)
・マイコン内蔵のタイマを使うクラス(クラスの内に割込みサービスルーチンを記述する例)
・ 汎用1次元配列のためのtemplate クラス

実習で使うマイコン・ボード(Nucleo-F446)と外付け回路例
・ STM32CubeIDE を利用してC++ 言語でSTM マイコンのプログラムを作りたい方.
・ マイコンのプログラム開発で,主としてC 言語でプログラムを作っているが,
C++言語も使おうと考えている方.
・ C++言語は使っており,他の人が作ったクラスも使っているが,
自作のクラスは作ったことがない,または作ったことはあるがその経験が浅い方.
・ マイコンのペリフェラルを使うためのクラスを作りたい方.
・ 組込みシステム開発で,C++言語を使ってプログラム開発の効率を上げたい方.
●講演の目標
・ STM32CubeIDE を使いC++ 言語でプログラムを作れるようになる.
・ C++ 言語の便利な機能を活用して,効率よくプログラムを作れるようになる.
・ 自作のクラスを作れるようになる.
・ 既存のクラスを継承する派生クラスを作れるようになる.
・ マイコンのペリフェラルに対応するクラスを作るための基礎を習得できる.
●内容
1.イントロダクション
・なぜC ではなくC++なのか
・STM32CubeIDE によるプログラム開発法
・STM32CubeIDE でprintf を使う方法
2.C++ を有効に使うための準備
・関数の引数として参照を使う
・関数のオーバーロード(多重定義)
・マイコンプログラミングに役立つSTL(Standard Template Library)
・動的メモリ領域の使い方とnew 演算子
3.関数template の使い方
・型(type)をtemplate の引数にする場合
・整数をtemplate の引数にする場合
4.class の基礎
・class の考え方と用語の整理
・コンストラクタとデストラクタ
・ アクセス指定子(public,private)
・ クラスのメンバの初期化
・ コピーコンストラクタと代入演算子
・ 演算子のオーバーロード
・ explicit の使い方
・ static データメンバとstatic メンバ関数
・ クラス内に割込みサービスルーチンを記述する
5.class の継承
・ 派生クラス
・ 仮想関数と純粋仮想関数
6.マイコンのプログラミングに役立つclass の事例紹介
・マイコン内蔵のAD 変換器を使うクラス(継承の例)
・マイコン内蔵のタイマを使うクラス(クラスの内に割込みサービスルーチンを記述する例)
・ 汎用1次元配列のためのtemplate クラス
実習で使うマイコン・ボード(Nucleo-F446)と外付け回路例
【受講者が持参するもの】
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
【講師】
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.
