我正在尝试在我的 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();
}