電子書籍の厳選無料作品が豊富!

http://www.kana-soft.com/tech/sample_0007.htm

のサイトを参考に、マイコンとのシリアル通信評価に使うPCのアプリケーションを
visual c# 2010で作っています。

一応データを受け取るようになったのですが、

63H 62H 61H 00H
(アスキーコードだと"cba<null>")

というデータを送っているはずなのですが、

扣a

というデータが受信されてしまいます。
正しく受信するにはどうすれば良いでしょうか。

(該当していそうな部分のソースです)



/****************************************************************************/
/*!
*@briefデータ受信が発生したときのイベント処理.
*
*@param[in]senderイベントの送信元のオブジェクト.
*@param[in]eイベント情報.
*
*@retvalなし.
*/
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
//! シリアルポートをオープンしていない場合、処理を行わない.
if (serialPort1.IsOpen == false)
{
return;
}
try
{
//! 受信データを読み込む.
string data = serialPort1.ReadExisting();

//! 受信したデータをテキストボックスに書き込む.
Invoke(new Delegate_RcvDataToTextBox(RcvDataToTextBox), new Object[] { data });
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/****************************************************************************/
/*!
*@brief受信データをテキストボックスに書き込む.
*
*@param[in]data受信した文字列.
*
*@retvalなし.
*/
private void RcvDataToTextBox(string data)
{
//! 受信データをテキストボックスの最後に追記する.
if (data != null)
{
rcvTextBox.AppendText(data);
}
}

A 回答 (2件)

SerialPortsクラスのEncodingプロパティで文字コードの種類を選択できます。


より詳しい情報は検索してください。
    • good
    • 0

文字コードに注意!



UNICODEだよ!

この回答への補足

ありがとうございます。
文字コードを変えればうまく行くということでしょうか。
msdnなども参照しながらやっているんですが、勉強不足でどういう風に書けば適切に変換できるかわかりません。
どうすればいいでしょうか。

補足日時:2012/08/01 17:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!