PySerial写入错误(波特率敏感)

2024-09-27 00:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pyserial和windows上遇到了一些问题(在linux上,它可以很好地使用相同的代码);我似乎在写错误的字节。在

代码甚至可以在DebianVM内的同一台机器上正常工作,所以我很确定这是一个软件问题。在

我使用的是python2.7.632bit,pyserial2.7,但是尝试过其他版本(2.5和2.4)都存在相同的错误。在

有趣的是,当波特率增加到115200时,错误发生的频率会降低很多。在

这是我代码的相关部分:

ser = serial.Serial()
ser.timeout = 0.1
ser.port = "COM74" 
ser.baudrate = 9600
ser.bytesize = 8
ser.parity = "N"
ser.stopbits = 1
ser.open()

ser.write("AT+CMGR\r")
search("OK", 5, rec, ser)
ser.write("AT+CGSN\r")
search("OK", 5, rec, ser)
ser.write("AT+CSQ\r")
search("OK", 5, rec, ser)
ser.write("AT+CREG?\r")
search("OK", 5, rec, ser)

ser.close()

当被测试时,输出如下:(在回声开启的情况下写入自动放音设备):

^{pr2}$

我可以确认“received:”之后的内容(无引号,除了“ERROR”和设备生成的一些CR NL字符)是设备实际接收到的内容:

A\xa8+CMGR\r
AT+C\x87SN\r
AT+CS\xd1\r
A\xa8+CREG?\r

如果有人能提出解决办法,我会选择葡萄柚


Tags: 代码内容searchlinuxwindows错误okat
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:14

我在windows和Serial中使用AT命令,我没有这些问题,我想这与编码有关。在

你能试试这个吗AT Commander

试着连接你的设备,看看你是否得到了正确的响应如果同样的话,问题就出在你的设备上了。在

相关问题 更多 >

    热门问题