STM32CubeIDEの日本語文字化け

STM32CubeIDEのサポートしている文字コードはUTF-8です。

STM32CubeIDEで作成したソースコードの日本語コメントは正常に表示されますが、他の環境で作ったソースコードを使うときに、日本語が文字化けすることがあります。
その場合はあらかじめソースコードをUTF-8に変換することで日本語を正常に表示することが出来ます。

私の場合は、元の文字コードがSJISだったのでSAKURAエディターでソースを開き、全選択して変換機能を使ってSJIS→UTF-8に変換することで対応しました。

STM32CubeIDE事始め

STM32CubEIDEについて

STマイクロエレクトロニクスから、統合開発環境TrueSTUDIOに、MCUの周辺機能を設定して自動的にライブラリを作成するSTM32CubeMXを組み込んだ無償版の開発環境STM32CubeIDEがリリースされました。

STM32CubeMXとTrueSTUDIOを統合して使い勝手をシンプルにしたというコンセプトで、STマイクロとしては今後、推奨開発環境をSTM32CubeIDE一本に絞るということです。
これまで、stm32シリーズのプログラム開発ツールとして有償無償版を含め、いくつかありましたが、今後は無償版のIDEをメーカーが本腰を入れてサポートするとアナウンスしたことは歓迎できます。

俺様開発環境のJDEからSTM32CubeIDEに移る

私はルネサスのH8、SHシリーズを使っていた時代からこれまで、GCCをベースにした自作の統合開発環境JDEを使ってきました。

JDEを作って使い続けてきた理由の一つは無償版の開発環境がなかったことです。
私の会社の顧客には教育・研究開発機関があり、ユーザーがプログラムを開発・変更出来るように開発環境を含めたシステムを提供することがあるため、高価な有償の開発環境を避けたかったことがあります。

もう一つは、私がかつてのVZエディターやDelphiのDOSIDEキーマップにこだわっているということがありました。
このキーマップは Ctrl-Sで左、Ctrl-Dで右、Ctrl-Eで上、Ctrl-Xで下にカーソルが移るDOSの時代に流行ったものです。
マウスを使わずにコードを編集したいということもありますが、このキーマップに慣れていてWindowsの標準キーマップを使うと、うっかりCtrl-Xを押してラインを消去してしまうことが頻発するためです。

STM32CubeIDEはメーカー推奨の無償版開発環境で、最新のEclipseをベースにしていて、キーのカスタマイズが自由に出来るためほぼ不満のない使い勝手となりました。

もう一つの理由として、STM32CubeIDEがOpenOCDをサポートしてくれたことがあります。
これまでMCUボードへの書き込み手段としてJtagKeyをベースにしたFT2232Dを使った書き込みボードをOpenOCDから使っていました。
この書き込みボードはJtagKeyで空いていた9,10番ピンにFT2232Dで使える仮想 COMポートのTx,Rxを割り当てて、プログラム書き込みと同時にUSBシリアル機能が使えるようにしたもので、リアルタイム制御プログラムで欠かせないシリアルモニタ機能をサポートするものです。

STM32CubeMXがリリースされたときにJDEでCubeMXを使うために、JDEにCubeMX が生成するプロジェクトをインポートする機能を追加したりもしましたが、これから発表される可能性のある新機能に対応していくのも面倒なため、この機会にSTM32CubeIDEを本格的に使い始めることにしました。

MCUボード設計に役立つSTM32CubeMX

※MCUはマイクロコントローラの略称でCPUとタイマーやADなどの高機能な周辺機能をワンチップに集積したICです。

STM32CubeMXは強力なプログラム開発支援ツールです

STM32CubeMXはstMicroが提供するstm32シリーズ用無償開発環境で、GUI画面でMCU周辺機能を設定することで、自動的に主変機能の初期化及び設定のプログラムを自動生成してくれるプログラミング支援ツールです。
特長はstm32シリーズのラインアップを全てをサポートし、RTOSやfatFS、LANをサポートするミドルウェアが一体化していることです。
未だリリースされていないMCUもSTM32CubeMXの選択画面にはリストアップされていて、メーカーがツールを重要視し、MCUの開発と一体化して進めているようです。

MCUの周辺機能が高機能で複雑になった現在では、このようなツールの性能がMCUのマーケットシェアを左右するため、半導体各社は使いやすくて高機能なツールを提供することに努めています。

MicroChipのMPLAB-Xも同様のコンセプトの開発環境ですが、プロ用ツールとしてはSTM32CubeMXが優れていると感じます。

ルネサスもスマートコンフィギュレータという名のツールを提供しているようですが、開発環境としては遅れている印象があるのは否めません。
今はMCU内のCPU性能より内蔵周辺機能や開発環境の使いやすさがMCU選択の決め手になる時代です。このままではstMicroやMirochipとの勢いに差がつく一方です、日本のMCUメーカーとして開発環境の拡充に力を入れていただきたいものです。

マイコンボードの設計支援ツールとして役立つSTM32CubeMX

STM32CubeMXはプログラム開発支援ツールですが、実はMCUボードの回路設計でも大活躍します。
STM32シリーズに限らず最近のMCUはADコンバータ、タイマー、シリアル通信、CAN、SPI、DMA、USB、LAN等の豊富な周辺機能を搭載しています。

豊富な内蔵周辺機能のおかげでコンパクトなMCUボードで色々なアプリケーションに対応できるのですが、設計時にどのMCUを使ってどの端子を割り当てかを決めるのにデータシートをひっくり返しながら悩む必要がありました。

その作業がSTM32CubeMXを使うようになってから格段に楽になりました。

手順としては、まず最初にSTM32CubeMXでプロジェクトを作成し使えそうなMCU選定します。
次にSTM32CubeMXの画面で必要な機能を有効にして端子を割り当てていきます。必要な機能を割り当てることが出来たら、そのMCUを使うことに決定し、割り当てた端子を使って回路図を作成します。

MCUボードが完成したら、そのプロジェクトを使ってソフト開発を始めます。
このような手順で開発を進めることによって数倍の効率で開発を進めることが出来るようになりました。