お気楽工作日記

お気楽工作日記

VBAでシリアル通信





VB、VBAからシリアルポート制御プログラムを作成するためのモジュール“EasyComm”を使ってトランジスタ技術付録のUSBマイコンボードと通信します。



その1:“EasyComm”を入手する

 例えば、ベクター↓

 http://www.vector.co.jp/soft/win95/hardware/se314506.html



 “EasyComm”作者の木下さんのホームページ↓

 http://www.activecell.jp/index.htm



その2:“EasyComm”を使えるようにする

 判りやすいマニュアルが付属してますので、それに従ってec.bas と ecDef.basの2つのファイルを標準モジュールにインポートすれば準備完了です。



その3:USBマイコンボードと通信するプログラムの作成

 USBマイコンボードに仕込まれているトラ技BIOSは、Enterキーのコード“13”を受信しないと返事をしてくれません。そこで、“EasyComm”のマニュアルに書いてあるソースの一部を変更して、Enterキーのコード“13”を送信するプログラムを作ってみました。

ポート番号は適当に変えてください。



Dim RecieveString As String

Dim CountOld As Long '前回の受信データ数

Dim CountNew As Long '今回の受信データ数




ec.COMn = 1 'COM1 をオープンします.

ec.Setting = "9600,n,8,1" 'COM1を設定します.

ec.HandShaking = ec.HANDSHAKEs.No 'ハンドシェークなし

'ec.Delimiter = ec.DELIMs.CR

ec.InBuffer = 10& * 1024& '余裕を持ったバッファサイズを指定します



ec.Binary = 13 'Enterキーのコード“13”を送信



Do

CountOld = ec.InBuffer '受信データ数を読み取ります

DoEvents

Loop While CountOld = 0 '受信開始まで待ちます




'一定時間,受信データ数が変わらなければ受信完了と判断します.

Do

ec.WAITmS = 100 '1000mS待ちます

CountNew = ec.InBuffer '受信データ数を取得します

If CountNew = CountOld Then '変化がなければ Loopを抜けます

Exit Do

End If

CountOld = CountNew '前回のデータ数を更新

Loop




RecieveString = ec.Ascii '文字列を読み込みます.

''''' 受信文字を処理します '''''



TextBox1.Text = RecieveString



ec.COMn = 0 'ポートを閉じます.





これを実行すると、マイコンボードからこんな返事が返ってきます。

ToragiBIOS Version 1.20A

(C)Copyright 2008 NEC Electronics Corporation

(C)Copyright 2008 Tokushu Denshi Kairo Inc.








トラ技付録のUSBマイコンボード
電子工作 メニュー
HOME



にほんブログ村 鉄道ブログ 鉄道模型へ

にほんブログ村 その他趣味ブログ 電子工作へ

ブログランキング・にほんブログ村へ

ブログランキングです↑ 人気のブログが揃ってます。



© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: