2024年3月17日日曜日

RP2040のUARTで全文を途切れさせずに読み切る

GPSのNMEAを読み出すとき、文章が長かったりタイミングが悪いと、途中で途切れてしまうことがある。

以下のようにany()を使うと解決する。

■BEFORE

msg = uart.read()

■AFTER

msg = ""
while uart.any():
    msg = msg + str(uart.read())[2:-1]

スライサーで2文字目以降を取ることで、バイト列を文字列に変換したときの先頭の「'b」をスキップしている。-2にして文末もスキップすべき?

0 件のコメント:

コメントを投稿