我正在尝试在我的 PC 和微控制器 (MC) 之间进行通信。我的微控制器将getchar()一直读取到 4 个字符,否则会碰到字符'\0'、'\'或'\r'.
与超级终端的通信工作得非常好。但是,我的 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();
}