kdhiro
2021年1月15日 15時03分
Python3で、PC間でのシリアル通信を試みているのですが、
下記プログラムで送信した先の受信データが1バイト目以降が
文字化けしてしまいます。16進数データだと「68 59 8b 3f 3f bd」、
テキストデータだと「hY・?ス」になります。Python3自体、詳しく
なく、ネットで調べたのですが、原因が全く分かりません・・・。
import serial
ser = serial.Serial('/dev/ttymxc2', 115200)
data = "hello"
ser.write(bytes(data, 'UTF-8'))
ser.close()
コメント
at_ohsawa
kdhiro
richard84
周回遅れですが、横から失礼します。
参考までに、私の経験談です。
10年以上前XP時代でしたが、取引先からVBで作成したシリアルポートでデータを送信ソフトを提供してもらったところ、条件をそろえているのに通信できなかったことがあります(受信側はマイコンボード)。
オシロで波形をみたら、設定した速度に対し間延びした波形が観測されました。
その時は、VCで直接シリアルポートを触るソフトに作り直してもらいました。
送信と受信の違いはありますが、ライブラリによってはそのような現象があり得ると思います(WindowsのpySerialが原因とも言い切れないですが)。
現在は問題がない様ですから、そこまでする必要はないでしょうが、どうしても切り分けが必要な場合はオシロでシリアル波形の確認で一発です。
(当たり前のことでスミマセン)
以上、よろしくお願いします。
kdhiro
2021年1月15日 15時20分
すみません。
文字化けしているときは、送信側Linuxで受信側Windowsのシリアル通信でした。
受信側もLinuxにしたら、文字化けはなくなりました。OSの違いでこのような
現象が起きるのですかね?