python3向串口发送组合按键,比如Ctrl+u,ctrl+c等等

嵌入式应用中经常需要通过键盘操作来产生中断,现在讨论如何用python3向串口发送按键

指令

python3操作串口需要调用pyserial库

import serial

串口的打开指令

ser=serial.Serial(COM4)
ser.baudrate=115200
ser.timeout=0.5     #这几句指令打开串口COM4,并设置波特率

串口的读指令

receive=ser.readline()   #表示读取一行,并赋值给receive变量
                         #经常会通过判断有没有收到数据或字符串等来判断收发成功与否      

串口的写指令

ser.write(('reset'+'\n').encode())   #可以像串口发送reset指令和换行

注意:我们使用python通常是用unicode类型,而串口读写的数据格式是十六进制字节,utf-8或gbk类型
所以在python里面,向串口写指令,必须要通过encode把unicode类型编码成utf-8类型。

unicode -->encode -->utf-8/gbk
utf-8/gbk -->decode -->unicode

('reset'+'\n').encode('utf-8')         #表示编码成utf-8类型
receive.decode('utf-8')                #表示把utf-8类型的数据解码成unicode类型 

发送组合键

向串口发送组合键的思路就是找组合键的ASCII码值,然后转换成十六进制,用ser.write指令直接写入

ACSII码表如下图所示

以ctrl+u为例

查到ctrl+u的ASCII十进制为21,十六进制为15,数字的十六进制格式为数字前加0x
所以向串口发送组合键ctrl+u的指令为

ser.write(chr(0x15).encode())              #chr()指的就是ASCii表对应的字符

你可能感兴趣的:(python3)