要在 Ubuntu 上使用 /dev/ttyUSB0
设备编写一个简单的串口收发程序,你可以使用 Python,结合 pyserial
库来实现。这种方法相对简单,适用于各种串行通信任务。以下是如何在 Python 中编写串口收发程序的步骤及代码示例:
步骤 1: 安装 PySerial
首先确保安装了 pyserial
,这是一个流行的 Python 库,用于处理串行通信:
pip install pyserial
步骤 2: 编写串口收发代码
以下是一个简单的 Python 脚本,用于打开 /dev/ttyUSB0
串口,配置波特率和其他参数,然后接收和发送数据。
import serial
import timedef open_serial(port, baud_rate):"""打开串口并配置基本参数"""try:ser = serial.Serial(port, baud_rate, timeout=1,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS)if ser.is_open:print(f"Serial port {port} opened successfully")return serexcept Exception as e:print(f"Failed to open serial port: {e}")return Nonedef read_from_serial(ser):"""从串口读取数据"""try:data = ser.readline() # 读取一行数据if data:print(f"Received: {data.decode().strip()}")except Exception as e:print(f"Failed to read data: {e}")def write_to_serial(ser, data):"""向串口发送数据"""try:ser.write(data.encode())print(f"Sent: {data}")except Exception as e:print(f"Failed to send data: {e}")def main():port = "/dev/ttyUSB0"baud_rate = 9600# 打开串口ser = open_serial(port, baud_rate)if ser and ser.is_open:try:# 循环接收和发送数据while True:read_from_serial(ser)time.sleep(1)write_to_serial(ser, "Hello from Python!")time.sleep(1)finally:ser.close()print("Serial port closed")if __name__ == "__main__":main()
程序说明
- 打开串口:
open_serial
函数尝试打开指定的串口并配置波特率等参数。 - 读取数据:
read_from_serial
函数从串口读取一行数据,并将其解码并打印。 - 发送数据:
write_to_serial
函数向串口发送字符串。 - 主循环:
main
函数中的循环演示了如何连续读取和发送数据。
注意事项
- 确保你有足够的权限访问
/dev/ttyUSB0
。如果没有,你可能需要使用sudo
来运行你的脚本,或将用户添加到dialout
组。 - 波特率和其他串口参数应该与你要通信的设备相匹配。
这个简单的示例提供了使用 Python 和 PySerial 进行串口通信的基础。