MSCommで8Bitデータを機器に送信するには?

解決


Do素人  2002-11-06 20:08:48  No: 105363

お初です。VB歴1週間の超ド素人です。
機器に、エクセルに書かれたE1からE1024までのバイナリーデータを順に流したいのですが、それ以前の問題で、1バイトも送信出来ません。
過去レスを拝見させて頂いたのですが、アホゥな私にはイマイチ理解できません。

Private Sub cmdOut_Click()
'送信釦クリック時の処理
'バイナリ8Bitデータを一回だけ送信------TEST_Program-------
        Dim sdData As Byte
        sdData = Sheets(2).Cells(1, 5).Value
        msSerial.Output = sdData      <----エラーになる行
End Sub

E1セルには2が書き込まれています。ポート設定、通信設定等の初期設定はHelpの通りに設定したつもりです。
どうか、ご教授願えませんでしょうか。


多分こんな感じ  2002-11-07 01:28:41  No: 105364

mscomm.outputはstring型で渡してあげなければダメなはずです。

byte配列に入れてあげてばどうでしょうか?

'送信釦クリック時の処理
Private Sub cmdOut_Click()
        Dim sdData(0) As Byte
        sdData(0) = "&H" + hex(Sheets(2).Cells(1, 5).Value)
        msSerial.Output = sdData
End Sub

とりあえずこんな感じかしらん?


Do素人  2002-11-07 03:15:23  No: 105365

ありがとうございます!
動きましたっ。

msSerial.Output=sdDataの所が疑問なのですが、
宣言で、sdData(0)はバイトデータとしましょう、っと定義しましたよね。
そして、sdData(0)に値を代入。
そうすると、送信するのはsdData(0)なのでわ…っと思うのです。が、このように書き換えると、元の木阿弥でした。
sdData(0)とsdDataは何が違うのでしょうか。
お願い致します。


Do素人  2002-11-07 18:20:02  No: 105366

"多分こんな感じかな"さん、ありがとうございました。
sdData()とsdDataの件は自己解決しました。


Do素人  2002-11-08 23:19:37  No: 105367

|


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加