python serial返回随机ascii

时间:2016-04-05 04:36:44

标签: python serial-port pyserial

我在nvidia tegra的串口上使用python来创建一个简单的串口连接到arduino我试图通过整数和字符串,但它们正在被切断。

我的代码看起来像这样

ser = serial.Serial(
port=/dev/ttyS0,
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
print ser.isOpen()  
ser.write("hello\n")

这是返回h▒▒▒▒, 当我尝试整数时,它只会返回整数2,4,7,8,否则它是▒ 如果我尝试做一些类似ser.write(str(“hello”))的东西,我会得到更多随机字符,它是否以某种方式编码不同有没有办法只是正常阅读它?

1 个答案:

答案 0 :(得分:0)

尝试在python代码中禁用parity位,因为在接收Arduino时可能无法启用它。

结果代码为:

ser = serial.Serial(
port=/dev/ttyS0,
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
print ser.isOpen()  
ser.write("hello\n")

当您在Arduino上开始串行通信时,您可以在配置参数中添加奇偶校验,如下所示:

Serial.begin(9600, SERIAL_8O1)

这将启动与波特率9600,8个数据位,奇校验位和一个停止位的串行通信。