• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:H8/36064を使ったシリアル通信について)

H8/36064を使ったシリアル通信について

このQ&Aのポイント
  • H8/36064を使ったシリアル通信についての疑問と対策
  • H8/36064を使ったシリアル通信でデータが文字化けする原因とは
  • シリアル通信で文字化けが発生する場合の解決方法

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

  • ベストアンサー
  • tsunji
  • ベストアンサー率20% (196/958)
回答No.3

No1です。 このソフトだと、バイナリデータ(0x00~0xff)をそのまま送信するのと、 16bit分データを送信していないのでデータが化けて当然です。 文字を送信しなさいということは、16bitのデータが0x01faなら"01fa"と 文字列に変換して、 sendCharSCI('0'); sendCharSCI('1'); sendCharSCI('f'); sendCharSCI('a'); という風に送信するようにプログラムしてください。

rokuMK2
質問者

お礼

何度も質問にお答えしていただきありがとうございます。 まだうまく文字列への変換ができていませんがおかげさまでやっと進めることができそうです。

その他の回答 (2)

回答No.2

ハードウエアについて何も書いていないが クロックが14.7456MHzになっているか? SCi3とPCのシリアルi/oのレベル変換は適切か?

rokuMK2
質問者

補足

はい、クロックは14.7456MHzでSCI3とPCのシリアルi/oの変換は適切なはずです。

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.1

まずパソコン側の受信ソフトのボーレート設定があっていること確認すること。 次に、受信するソフトはTeraterm等のソフトなら送信するデータを文字に変換すること。 AD.ADDRA、AD.ADDRBは10bitの情報だから6bitシフトしているが、データは10ビットなので 16bitの変数が必要なのはわかるが、sendCharSCIはchar型の8bitなのに16bitのポインタ を渡している。

rokuMK2
質問者

補足

ボーレート設定は9600bpsであわせてあります。 送信するデータを文字に変換するというのはどういうことでしょうか? 10bitのデータを数字としての文字列に置き換えるのですか? char型からint型に変更しました。 ご指摘ありがとうございます。

関連するQ&A