我有一个客户显示器,它已连接到串口。我正在使用Windows机器。
我想发送 Ctrl + L 来清除客户显示的显示,但我找不到可以帮助我的解决方案。基本上我希望发送 Ctrl +'任何命令'将来。
在命令提示符中我可以使用" Ctrl + L "清除现有显示并显示文本。以下是在提示
中显示的命令echo ^LDisplay me > COMX // ^L is actually CTRL + L
以上将输出为,
清除显示。
显示"显示我"
现在我正在尝试使用Python串行连接器实现相同的功能。
import serial
ser = Serial ('COM5',timeout=2)
ser.write("\x0C") # equivalent to ctrl+L
这根本不起作用。我得错误为
串行连接异常:不支持unicode字符串,请编码为字节:' \ x03'
但是,如果我尝试以下正常文本,它可以很好地工作,
ser.write("Display me".encode()
显示"显示我"在客户展示中。
我尝试使用ser.write("\x0C".encode())
,但我没有输出。
我收到错误
串行连接异常:不支持unicode字符串,请编码为字节:' \ x1fc \ x00'
我将不胜感激任何建议,改进和帮助来解决这个问题。感谢。
答案 0 :(得分:2)
要在Python3中将 Ctrl + L 编码为字节,您应该使用:
b'\x0c'
Ascii控制字符被编码为它们在字母表中的位置,因此 Ctrl + C ,因为它是字母表的第三个字母,编码为十六进制字符串,将是\x03
。同样, Ctrl + L 将\x0c
(十六进制C为十进制12)。
在python 3中获取字节,你可以用b
预先挂起字符串。