我正在尝试与一个使用python和pySerial以ASCII格式进行通信的scale进行通信。我没有使用ASCII格式的经验。所以我有一些基本的问题。我如何发送一个字符T,例如使用pySerial,并使用ASCII码格式的CRLF终止它?我试过了
myserialport.write('TCRLF')
myserialport.write('T\r\n')
myserialport.write('T\n\r')我也在尝试从刻度中读取数据,例如,我期望的是'208.01克‘的形式。但是当我使用
myserialport.read(10)或
myserialport.readline(10)这是我从天平上得到的
]ëýýÿ]W
ÿ]u_u]ÿ]uÕ
ýWýWë]uÝõW
ÿ½õÿ½WW]Ýý
WýW]Wÿ½ÿ×ë从googling上看,默认情况下pySerial应该接收ASCII码格式的数据,并将其作为well...but发送。我迷失了为什么它不能工作。任何帮助都将不胜感激。
发布于 2013-01-24 07:45:48
这是将带有CRLF的字符发送到串行端口的正确方式:
myserialport.write('T\r\n')关于杂乱的响应-确保您正确设置了波特率、数据位数、停止位和奇偶校验位。您可以在标尺的数据表中找到所需的值。
例如:
from serial import Serial, SEVENBITS, STOPBITS_ONE, PARITY_EVEN
myserialport = Serial('/dev/ttyS0', baudrate=9600, bytesize=SEVENBITS, parity=PARITY_EVEN, stopbits=STOPBITS_ONE)发布于 2013-02-06 06:16:03
问题是USB到串行转换器上的接地连接(针脚7需要接地)。如果你有同样的问题,检查你的引脚。(费雪科学天平使用针脚7作为接地,这是不正常的,因为针脚5是ground...odd...)谢谢大家。
https://stackoverflow.com/questions/14491061
复制相似问题