PC とマイクロコントローラー (MC) の間で通信しようとしています。私のマイクロコントローラーは、4文字が読み取られるか、文字、、、または文字にぶつかるまでを使用して読み取りgetchar()
ます。'\0'
'\'
'\r'
通信は、ハイパーターミナルで完全に正常に機能します。ただし、入力文字列をエンコードし、それらの特殊文字の 1 つと連結するときに、私の python スクリプトは'\0'
、'\'
、またはを送信していないようです。'\r'
command = input("Enter Command: ")
port.write(bytes(command + '\n', 'UTF-8'))
そのため、コマンドを入力すると、コマンドx
が送信'x'
さ'\n'
れ、MC は改行のためにさらに文字が読み取られるのを待つ必要がなくなります。ただし、 のみを入力するx
と、MC はさらに 4 文字の読み取りを待機します。
特殊文字を含む文字列を適切にバイトに変換するにはどうすればよいですか? ありがとう。
MC コードは次のとおりです。
buffer[ii] = getchar();
while(buffer[ii] != '\0' && buffer[ii] != '\n' && buffer[ii] != '\r' && ii < 4 - 1)
{
buffer[++ii] = getchar();
}