使用pySerial和s发送字节时出现问题

2024-09-27 23:22:11 发布

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

我想通过pySerial发送一些字节。为了测试目的,我用socat创建了虚拟串行端口:

socat PTY,link=./ptyp1,b9600 PTY,link=./ptyp2,b9600

下面是python代码:

^{pr2}$

我得到的结果是:

02   # x
5e42 # y

我期望输出:

02 # x
02 # y

我做错什么了?是socat还是python?在

编辑:

我刚注意到不同x值的一些奇怪的行为。这里是输出:

x = 12  => y = 5E 52 0D 0A 5E 50
x = 100 => y = 100 # why does it work here?

解决方案:

问题是我在同一个端口上读。如果我做对了,socat连接两个端口作为“输入”和“输出”。所以如果我写信给./ptyp1,我必须继续读./ptyp2。之后,一切都好了。在


Tags: 端口代码目的编辑字节linkptypyserial
3条回答

你得到的似乎是字符串“^B”。有可能是socat(或其他类似的东西)将您发送的字节(\x02)解释为某种控制代码。在

在我的脑海中,Ctrl-B是页面背面的助记符,但我不确定。在

我安装了socat来测试你的代码。我已经跑过这条线:

socat PTY,link=./ptyp1,b9600 PTY,link=./ptyp2,b9600

然后,以下代码起作用:

^{2}$

输出:

02
5e
42

问题是我在同一个端口上读。如果我做对了,socat连接两个端口作为“输入”和“输出”。所以如果我写信给./ptyp1,我必须继续读./ptyp2。之后,一切都好了。在

相关问题 更多 >

    热门问题