- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:H8/36064を使ったシリアル通信について)
H8/36064を使ったシリアル通信について
このQ&Aのポイント
- H8/36064を使ったシリアル通信についての疑問と対策
- H8/36064を使ったシリアル通信でデータが文字化けする原因とは
- シリアル通信で文字化けが発生する場合の解決方法
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 このソフトだと、バイナリデータ(0x00~0xff)をそのまま送信するのと、 16bit分データを送信していないのでデータが化けて当然です。 文字を送信しなさいということは、16bitのデータが0x01faなら"01fa"と 文字列に変換して、 sendCharSCI('0'); sendCharSCI('1'); sendCharSCI('f'); sendCharSCI('a'); という風に送信するようにプログラムしてください。
その他の回答 (2)
- TooManyBugs
- ベストアンサー率27% (1472/5321)
回答No.2
ハードウエアについて何も書いていないが クロックが14.7456MHzになっているか? SCi3とPCのシリアルi/oのレベル変換は適切か?
質問者
補足
はい、クロックは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のポインタ を渡している。
質問者
補足
ボーレート設定は9600bpsであわせてあります。 送信するデータを文字に変換するというのはどういうことでしょうか? 10bitのデータを数字としての文字列に置き換えるのですか? char型からint型に変更しました。 ご指摘ありがとうございます。
お礼
何度も質問にお答えしていただきありがとうございます。 まだうまく文字列への変換ができていませんがおかげさまでやっと進めることができそうです。