我在用Python在树莓上奔跑。我有一个串行设备(max232/PiC16F84)通过USB到串行适配器连接到树莓。 我试着给设备发送两个字节(例如0000 0011),然后由PIC将其解释为一个命令。 USB串行适配器配置正确,波特率等参数应正常。我想我的代码没有把正确的字节发送到串行端口。
import serial
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate=1200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
xonxoff=serial.XOFF,
rtscts=False,
dsrdtr=False
)
ser.open()
ser.isOpen()
print("Initializing the device ..")
ser.write(bytes(0x00))
print("Write command")
ser.write (bytes(0x04))
print('Done')
使用这个: 字节[0x00]+字节([0x04])
您不正确地使用了
bytes
构造函数。当用int
作为参数调用它时,您将得到:所以
bytes(0x00)
(就是bytes(0)
)是空字符串,而bytes(0x04)
是四个零字节:您需要的是
bytes([ 0x00 ])
等,或者只是一个包含所有字节值的数组:如果字符串很短,您可以简单地将其写为常量:
b'\x00\x04'
。有关更多选项,请参阅bytes()
的文档。相关问题 更多 >
编程相关推荐