本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PCからPICへのデータ送信について)

PCからPICへのデータ送信について

2023/09/07 03:25

このQ&Aのポイント
  • VB2010を用いたserialport機能を使って、PCから外部機器にデータを送信するプログラムを作成しています。しかし、うまく送信することができません。
  • 外部機器はデータの送信を感知していますが、送信されたデータを認識できません。
  • 文字コードの変換を試しましたが、問題を解決することはできませんでした。どのようにすれば問題を解決できるでしょうか?
※ 以下は、質問の原文です

PCからPICへのデータ送信について

2011/08/02 16:57

VB2010をのserialport機能を用いて,外部機器にデータを送るプログラムを作成しています。
外部機器から送信されてきたデータの受信は問題なくできましたが,PCからの送信がうまく出来ません。

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

If TextBox2.Text.Length = 0 Then
MessageBox.Show("送信文字列を入力してください", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
TextBox2.Focus()
Exit Sub
End If
Try
SerialPort1.WriteLine(TextBox2.Text)

Catch ex As Exception
MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

End Sub

プログラムは上記のようになります。(microsoftのサンプルそのままです。)
上記のプログラムで 数字の「1」を送信したいのですが,うまく送ることができません。
外部機器は,データが送信されたことは感知していますが, 「1」 が送られたことは認識できていないようです。
serialdebug2というソフトを使用して,「1」 を送信した場合は,問題ありませんでした。
 ほかのサイトでも質問させてもらい,VBの文字コードを変換するようにとのアドバイスを頂き,実行しましたが,うまくデータが送信できませんでした。
どうすれば,上記のような問題を解決できるでしょうか?

質問者が選んだベストアンサー

ベストアンサー
2011/08/03 03:38
回答No.2

>プログラムは上記のようになります。(microsoftのサンプルそのままです。)
microsoftのサンプルそのままなら漢字やカナは使われないですよ。というのは置いといて
上記のプログラムじゃ動かないはずですが。

(1)COM番号との対応を記述する必要があります。(フォームのデザインで設定ずみ?)
(2)ポートのOPEN処理はどこでやってる?

まず同じPCのシリアルポート同士で
片方はVB.Netのプログラム
もう一方はTeraTerm等のターミナルソフトで
通信を行いデバッグするのが早道だと思います。

お礼

2011/08/03 13:33

ご回答ありがとうございます。
本質問投稿後に試行錯誤した結果,問題なく送信できるようになりました。

追記で示して下さったデバッグ方法をこれから利用させていただきます。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (2件中 1~2件目)

2011/08/03 01:20
回答No.1

>ほかのサイトでも質問させてもらい,
http://oshiete.goo.ne.jp/qa/6318319.html
これでしょうか?

>serialdebug2
http://www.vector.co.jp/soft/winnt/hardware/se449799.html
これですね
恐らくserialdebug2の使い方を勘違いしていらっしゃる
これは送信機能もあるラインモニタです
本来の用途としてはシリアルポートに流れている信号をモニタするもの

貴殿が作ったプログラムが232Cから出力した信号を
別のPCでserialdebug2を起動して受信してみてください
つまりPICがどんなデータを受信したのか?を調べるのが本来の目的
送信機能はおまけの機能です

>外部機器は,データが送信されたことは感知していますが, 「1」 が送られたことは認識できていないようです。

”1”ASCで31h
果たして31hを受信してるのかどうかが問題
多くの場合、31hでない確率が高い 

お礼

2011/08/03 13:34

ご回答ありがとうございます。
本質問投稿後に試行錯誤した結果,問題なく送信できるようになりました。

送信時の文字コードがおかしかったようでした。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。