我有我的pyserial程序在Ubuntu 16.我试图发送一个break命令使用pyserial硬件设备的问题。 我写了一个Python脚本:
- 设置端口/波特率/奇偶/ bytesize / ...
- 打开端口
- 将中断发送命令
- 读取来自该装置的返回消息。
我我的Ubuntu 16.04的机器上运行脚本,我得到零响应,它只是挂起或超时,最终。 我相同的脚本复制到我的Windows机器,更改端口(从/ dev / ttyUSB0到COM#)和我的脚本作品完美,得到立即从设备的响应。
当我在Ubunutu运行脚本我不得不放弃权限的端口(须藤搭配chmod 666的/ dev / ttyUSB),或者我得到打开端口时,权限被拒绝的错误。 不知道这很重要。
有没有人有什么可能会在任何见解? 我知道,Windows和Linux处理串行/ COM端口不同,但我是一个新手,Linux和串行所以不知道如果我失去了一些东西。
我使用这个USB转串口线( http://www.ugreen.com.cn/product-681-en.html ),我必须安装一些驱动程序。 我连接串行读/写引脚和测试,以确保数据通过去(这是),所以我知道的作品。
import serial
ser = serial.Serial()
ser.port = '/dev/ttyUSB0' # or COM12 on windows
ser.baudrate = 9600
ser.parity = serial.PARITY_NONE
ser.bytesize = serial.EIGHTBITS
ser.stopbits = serial.STOPBITS_ONE
ser.open()
ser.send_break(duration=0.9)
print(ser.read(10))