简介:串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
历史攻略:
i2c-tools:让硬件通信更简单
IPMI开源库pyghmi基本使用
安装:
pip install pyserial
案例指引:
1、查询当前机器有哪些串口:
ls -al /dev/tty* | grep USB
2、进入串口调试模式
sudo minicom -D /dev/ttyUSB0
3、手工输入和返回尝试
4、pyserial - demo:serial_demo.py
# -*- coding: utf-8 -*-
# time: 2024/4/7 23:31
# file: serial_demo.py
# 公众号: 玩转测试开发
import time
import serialclass SerialTool(object):def __init__(self, baudrate, bytesize, timeout=0):self.baudrate = baudrateself.bytesize = bytesizeself.timeout = timeoutself.ser = serial.Serial(self.baudrate, self.bytesize, timeout=self.timeout)def get_data(self, size=100, encoding_type=""):if encoding_type:data = self.ser.read(size).decode(encoding=encoding_type)else:data = self.ser.read(size).decode()return datadef get_all_data(self, encoding_type=""):if encoding_type:data = self.ser.read_all().decode(encoding=encoding_type)else:data = self.ser.read_all().decode()return datadef input_data(self, data):data = data.encode()print(f"input data: {str(data)}")self.ser.write(data)time.sleep(0.1)def reset_output_buffer(self):self.ser.reset_output_buffer()def test_write_read(self):self.ser.write(b"\n")time.sleep(0.1)data = self.get_data(100, "ascii")print(f"my test data: {data}")if __name__ == "__main__":baudrate = "/dev/ttyUSB0"bytesize = 115200timeout = 0my_ser = SerialTool(baudrate, bytesize, timeout)data = my_ser.get_data(100, "ascii")print(f"Before input. Get data:{data}")# my_ser.input_data("mw 0x0109010C 0x02f24500")my_ser.test_write_read()data2 = my_ser.get_data(100, "ascii")print(f"After input. Get data:{data2}")
运行结果:对比步骤3手工调试可知,
代码运行与手工输入回车都是返回 =>,说明调试成功。
其他参考命令:退出串口调试, ctrl + A 然后松开后按 X 即可实现退出串口调试模式。