STM32からUARTで送信したデータを、PC上でバイナリファイルとして保存する方法について。目的は、STM32に接続したフラッシュROMに書かれている内容を吸い出して、バイナリファイルとして内容を見たいということである。

マイコンのUART出力を使ったデバッグはよくある話で、USBシリアル変換を使ってPCと接続し、シリアルモニタのソフトでデバッグを行う。ちょっとしたバイナリのデータ送受信であれば、適当なフリーソフトで大体問題ない。しかし、ある程度大きい容量のデータをそのままバイナリファイルとして保存しようとすると、意外にできるソフトは少ない。

実は、定番のTera TermのLog機能を使うことで、受信データをバイナリファイル化できる。

まず下準備として、ターミナルにバイナリデータが正しく表示されるように設定する。設定ファイルであるTERATERM.INI内で、デバッグ機能をONにした後、Tera Termを起動する。[Shift+ESC]で通信データがHEXで表示されるようになる。

ここでの表示は、Log機能で記録されるデータとは、直接関係がない。しかし、標準の表示のままにした場合、ファイルに記録する中でデータを取りこぼすことがあった。表示を切り替えておいた方が無難だと思われる。また、受信中のデータがHEXで見られる方が便利だろう。

Log機能の使い方は、[File]メニューから[Log]を選択し、必要な設定をして記録を開始する。[Binary]の項目にチェックを入れることで、そのままバイナリとしてファイルに記録される。

STM32からの送信を開始すると、ダイアログ画面で受信データがカウントされていく。送信したはずのサイズで正しくカウントされていることを確認して、Closeで記録を終了する。

保存したバイナリファイルは、FavBinEditなどのバイナリエディタで内容を確認できる。