MacBook下如何查找串口转USB线缆对应的串口端口?
解决MacBook下USB转RS232串口设备无法识别及Python串口配置问题
一、串口设备找不到的排查方案
- 先确认USB转串口线缆的芯片型号(比如CH340、PL2303、FT232),去对应芯片厂商官网下载Mac驱动安装后重启电脑——很多廉价线缆默认不带Mac驱动,这是最常见的原因。
- 换用
ls /dev/cu.*命令排查,Mac系统里用于串口通信的设备通常在/dev/cu.*路径下,/dev/tty.*更多用于终端登录场景,插拔线缆前后对比这个命令的输出,就能找到新增设备。 - 通过系统报告确认:打开「关于本机」→「系统报告」→「USB」,找到你的USB转串口设备,查看它对应的设备路径(一般是
/dev/cu.usbserial-XXXX这类格式)。
二、代码的两处修正
- 端口参数:把
port='/dev/ttyUSB4'替换成你实际找到的串口路径,比如/dev/cu.usbserial-ABCD1234。 - 关闭串口的错误:
ser.close是方法调用,必须加括号改成ser.close(),否则端口不会被正确关闭。 - 关于
ser.write(cmd.encode())的作用:串口只能传输字节数据,这个操作是把字符串形式的指令(比如"VI5\r\n")转成UTF-8编码的字节流,让串口能正确接收解析。
修正后的代码示例:
import serial ser = serial.Serial( port='/dev/cu.usbserial-ABCD1234', # 替换为实际找到的串口路径 baudrate=9600, bytesize=8, parity=serial.PARITY_NONE, stopbits=1, timeout=10 ) # 设置初始速度的VI指令 cmd = "VI5\r\n" ser.write(cmd.encode()) # 将字符串指令转为字节流发送 # 读取模块响应并打印 response = ser.readline() print("模块响应:", response.decode()) ser.close() # 正确调用close方法关闭端口
内容的提问来源于stack exchange,提问作者Unfairer
相关产品推荐
相关产品推荐

