python - 以编程方式与 OS X 或 Linux 中的串行端口通信

标签 python linux macos serial-port

我有一个 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/

相关文章:

python - django.admin.SimpleListFilter.queryset - 返回列表?

python 3 : How to best iterate over all lines in a big file (+1 million lines) in a random order

python - CSV 阅读器在 Ubuntu 和 Windows 上的不同输出 - Python

cocoa - NSSearchField:搜索延迟多长时间?可以配置吗?

python - 使用 multiprocessing.Process 时 Tkinter GUI 卡住

python - discord.py(python)中的ffmpeg播放器自动离开

linux - 关于glibc中malloc实现的问题

java - 更改操作系统时区不会更改 JVM 默认时区

javascript - 如何打开数据 :image in browser from node-webkit app?

macos - 在 mac 10.5.8 上运行 tomcat 7.0.16 时出现问题