Python:简易的串口收发程序
更新历史
20201204:
- 首次发布
最近需要搞一个基于Python的串口程序,要求:
- 能够将字符串形式的十六进制数(例如:‘12 34 CD EF’)转化成对应的二进制数据后发送给一个串口设备
- 能够从串口设备接收二进制数据,转化成字符串形式的十六进制数后进行保存。
网上找了找,发现有现成可供参考的代码。于是拿来做了点修改,变成了我所需要的代码。感谢提供代码的网友,同时,我也将自己的代码贡献出来,以供参考:
#######################
#程序功能:串口通信的简易程序,基于Python3开发。
#by:永恒的止水(CSDN),https://blog.csdn.net/qq_38791897/article/details/110670718
#######################
import serial
import serial.tools.list_ports
from binascii import b2a_hex, a2b_hex
import threading
#全局变量
GLOBAL_DATA_LIST = []
GLOBAL_NOTEND = True # 是否读取结束
#查找可用的串口设备
#输入:无
#输出:
# port_list:列表,每个元素都是一个字符串,字符串为串口的名称
def get_serial_port_list():
port_list = []
port_list_temp = list(serial.tools.list_ports.comports())
if len(port_list_temp) == 0:
print("[Warning] 无可用串口!")
else:
print("[Successful] 存在可用的串口,如下:")
for my_port in port_list_temp:
print(my_port)
port_list.append(str