在pySeri中发送和读取ASCII值

2024-06-20 14:58:58 发布

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

我试图用一个scale进行通信,这个scale使用python和pySerial以ASCII格式进行通信。我没有使用ASCII格式的经验。所以我有一些基本的问题。 如何发送字符T,例如使用pySerial,并使用ASCII格式用CRLF终止它? 我试过了

 myserialport.write('TCRLF')
 myserialport.write('T\r\n')
 myserialport.write('T\n\r')

我还试图从量表中读取数据,例如,我希望它的形式为“208.01 g”。但是当我使用

myserialport.read(10)

或者

myserialport.readline(10)

我是从天平上拿的

]ëýýÿ]W
ÿ]u_u]ÿ]uÕ
ýWýWë]uÝõW
ÿ½õÿ½WW]Ýý
WýW]Wÿ½ÿ×ë

从google上看,pySerial在默认情况下应该接收ASCII格式的数据,并将其发送出去……但我不明白它为什么不工作。任何帮助都将不胜感激。


Tags: read格式ascii经验读取数据字符形式write
2条回答

问题是USB到串行转换器的接地连接(需要接地引脚7)。如果您有相同的问题,请检查您的pin。(Fisher闪烁秤使用引脚7作为接地,这是不正常的,因为引脚5为接地…奇怪…)谢谢。

这是将带有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)

相关问题 更多 >