2013年9月1日日曜日

MCU Gear のプログラム:その3 LPC1114FN28 編 UART ( シリアル通信 でPCに文字とdouble型データを送る)

MCU Gear ® を使ったプログラムの説明などを書いています

LPC1114FN28をUART(シリアル通信)で文字列とdouble型のデータをモニタリングしてみましょう。

動作確認用のサンプルプログラムは http://www.mcugear.com/ にあります。

LPC1114FN28のUART to USB(USB シリアル通信)を使ってPCからLPC1114FN28の状態をのぞいてみようと思います。状態が見えると何かと便利です。

MCUGearを通してモジュールのピンからもUARTは使えますが、プログラムを書き込む際に使用しているCOMポートがあるので、それをそのまま利用してみようと思います。

LPC1114FN28でモニタリングするのは、文字列、データ(double型、int型)の関数を用意しました。特にC言語の標準ライブラリはインクルードせずに使える、コンパクトに仕上がっていると思います。



準備するもの

・Tera Term 日本語版
   http://sourceforge.jp/projects/ttssh2/


・今回はMCU Gearは必須ではないですが、あるとそのままつながるので配線が楽です。


・LPC1114FN28が必要です。


・USB-UART のケーブル(LPC1114FN28にプログラムを書き込んでいるケーブルでOK)


Tera Termは定番のソフトで、工学部で少しでも電子電気をやった方ならまず知らない人はいないでしょう。


Tera Termをダウンロードしてインストールしてください。

起動するとTera Termをどこに接続するかを選択できます。LPC1114FN28につないでいるUSBがどのCOMポート番号に割り振られているかを調べてください。



ここではVer 4.78の物を使っています。

windows8で使っていますが、自動的に接続先の情報を集めてくれるようになっているようです。
それ以外のツールで使うときにCOMポートを調べるには以下の方法があります。

COMポート番号の調べ方

コンピュータアイコンの上で右クリック->プロパティ->デバイスマネージャー
を選ぶと、デバイス一覧が出てきます。
そこで、COMポートと出ているので、その番号を控えておきます。

※Tera TermとFlash Magic は同じ通信経路を通っているので、どちらか片方づつ使ってください。競合すると動かなくなります。


LPC1114FN28側のプログラムです。


#include "SimpleUart.h" をインクルードしてください。


void initUART(uint32_t baudrate); でボーレートをセットします。

void UART_Puts(char *str);  でテキストを出力します。


void UART_PutData(double dataD, uint32_t iKeta); 

double dataD はdouble型とint型を入れられます。(warningが出る場合はキャストすると出なくなると思います。)
uint32_t iKetaは表示する小数点の桁数を入れてください。
マイナスも表示されます。小数点は四捨五入されます。
あまり細かい小数点は出せないかもしれません、限度を試していないので目的の桁数でも動作するかを確認してから使ってください。


initUART(9600);
UART_Puts("TEST\r\n");

dData = -123.45678;

UART_PutData(dData, 3);
UART_Puts("\r\n");
  mwait01(1000); //100msec

上記のプログラムを実行すると、ボーレート9600で, 

TEST
-123.457
 と四捨五入で表示されます。


もし指定桁数内に小数点以下が 0 ではない場合、0も表示されます。

例)
1.000000 を 少数点以下3桁で表示しょうとすると 1
1.300000 を 少数点以下3桁で表示しょうとすると 1.300

速すぎると見にくいので適度にmwait01( );を使ってください。


0 件のコメント:

コメントを投稿