我有一个 Prolite LED 标志,我喜欢设置它来显示来自 apache 日志和其他有趣统计数据的滚动搜索查询。问题是,我的 G5 没有串口,所以我必须使用 USB 转串口加密狗。它显示为/dev/cu.usbserial 和/dev/tty.usbserial 。
当我这样做的时候,一切似乎都很糟糕:
stty -f /dev/cu.usbserial
speed 9600 baud;
lflags: -icanon -isig -iexten -echo
iflags: -icrnl -ixon -ixany -imaxbel -brkint
oflags: -opost -onlcr -oxtabs
cflags: cs8 -parenb
当我使用 serial port tool 时一切正常与它交谈。
如果我在上面提到的串口工具的同时运行这段代码,一切都可以。但是,一旦我断开该工具,连接就会丢失。
#!/usr/bin/python
import serial
ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10)
ser.write("<ID01><PA> \r\n")
read_chars = ser.read(20)
print read_chars
ser.close()
所以问题是,我需要执行什么魔法才能在没有串口工具的情况下开始与串口通信?这是权限问题吗?还有,/dev/cu.usbserial 和/dev/tty.usbserial 有什么区别?
不,没有序列号。问题是,即使使用 sudo 运行 python 脚本,问题仍然存在,并且如果我在我提到的 gui 工具中打开连接,唯一可以解决的问题。
最佳答案
/dev/cu.xxxxx
是“callout”设备,当您建立与串行设备的连接并开始与之交谈时,您会使用它。 /dev/tty.xxxxx
是“拨号”设备,用于监控端口的来电,例如一个传真监听器。
关于python - 以编程方式与 OS X 或 Linux 中的串行端口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976/