仮想COMポート(Virtual COM Port)の使い方:Q&Aで学ぶマイコン講座(78)(4/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「仮想COMポート(Virtual COM Port)」についてです。
(2)printfを使う
PCのターミナルソフトでUARTのデータを受信し、そのデータを画面上に表示する場合、ASCIIコードでないと読み取れません。
しかし、マイコン内部(または外部)の通信では、1または0のバイナリデータを直接やりとりするため、そのままターミナルソフトに送っても、ASCIIコードではないため読めません。
そこで、C言語の標準入出力関数「printf」を使います。「printf」を使用すれば、浮動小数点の値もターミナルソフトで表示できます。
実際のコーディングでは、「#include “arm_math.h” 」の下に「#include <stdio.h>」を入れます。これは、printf用のarmの標準ファイルです。次にprintfを使用するときのidefの記述を記入する必要があります。idefの記述は、使用する統合開発ツールによって若干異なるため、各ツールの仕様をマニュアルなどで確認してください。
そして、printf("%f\n\r", 変数);の記述を入れます。変数には出力したい値を入れておきます。
最後に、PUTCHAR_PROTOTYPEを入れます。例えば、次のような記述です。
// brief Retargets the C library printf function to the USART.
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
printfを使う際、統合開発ツールのオプション設定を行う必要がある場合があります。特に、浮動小数点演算値を取り扱う時には、オプション設定が必要になります。オプション設定については各ツールの仕様をマニュアルなどで確認してください。
(3)ターミナルソフトの設定
PC側のターミナルソフトの設定を行います。ここでは、Tera Termを例にして説明します。
シリアルポートは、STM32 Nucleoボードにつながっているシリアルポートを選びます。この例では「COMn:STMicroelectronics STLinkVirtual COM Port」です。設定からシリアルポートを選び、スピードを115200に設定します。Tera Termのデフォルトのスピードは9600ビット/秒(bps)の場合が多いですが、せっかくマイコンが115200bpsの高速通信(12倍)に対応しているので、115200bpsで通信した方が、反応が良くなります。このスピードは、STM32CubeMXでUSART2の設定を行った通信速度と合わせる必要があります(図5)
(5)プログラムの実行
プログラムを実行すると、printfで出力された変数の値がPC側のターミナルソフトの画面上に表示されます。
図6は温度センサーで、室温をA-Dコンバーターで繰り返し測定し、その値をprintfで出力したものです。Tera Termの画面には、測定された温度が次々と表示されます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコン内蔵フラッシュメモリの書き込み&消去動作
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。55回目は、初級者の方からよく質問される「マイコンに内蔵されたフラッシュメモリの書き込み&消去動作」についてです。 - マイコンのメモリマップの読み方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。52回目は、初心者の方からよく質問される「マイコンのメモリマップの読み方」についてです。 - フラッシュメモリをEEPROMとして使う「裏技」
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。47回目は、中級者の方からよく質問される「フラッシュメモリをEEPROMとして使う裏技」についてです。 - レジスタとRAMの違い
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。48回目は、初心者の方からよく質問される「レジスタとRAMの違い」についてです。 - メモリの種類と特長
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「マイコンに搭載されているメモリの種類と特長」についてです。 - マイコンが起動するまで、なぜ時間がかかるの?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「マイコンが起動するまで、なぜ時間がかかるの?」についてです。