Python 基于FPGA-Uart的Pyserial串行数据传输
我知道这已经被讨论了很多,但是没有找到解决我问题的正确方法。 我正在用FPGA将数据发送到Uart中。 FPGA部分很清楚,我在FPGA ide上使用8位UART接收器\tx。 数据看起来像 000101010101 101010110110 101011001011 . . . . .. 101010110110(即12列数据和4096行ASCII值) 有人能帮我以某种方式将这些数据从pyserial以二进制形式串行发送到Uart吗??Python 基于FPGA-Uart的Pyserial串行数据传输,python,pyserial,serial-communication,Python,Pyserial,Serial Communication,我知道这已经被讨论了很多,但是没有找到解决我问题的正确方法。 我正在用FPGA将数据发送到Uart中。 FPGA部分很清楚,我在FPGA ide上使用8位UART接收器\tx。 数据看起来像 000101010101 101010110110 101011001011 . . . . .. 101010110110(即12列数据和4096行ASCII值) 有人能帮我以某种方式将这些数据从pyserial以二进制形式串行发送到Uart吗?? 先谢谢你 我在使用pyserial时编写的旧代码可能有用
先谢谢你 我在使用pyserial时编写的旧代码可能有用:
class myser():
timer = ''
buffer = b''
ser = ''
def __init__(self):
pass
def Cancel_Timer(self):
try:
self.timer.cancel()
except Exception as ex:
template = "ct: An exception of type {0} occured. Arguments:\n{1!r}"
message = template.format(type(ex).__name__, ex.args)
print(message)
def OpenSerial(self, COM, Baud, Parity, sBits, dBits, Timeout):
try:
self.ser = Serial(port=COM, baudrate=Baud, parity=Parity,
stopbits=sBits, bytesize=dBits, timeout=Timeout)
except Exception as ex:
template = "op: An exception of type {0} occured. Arguments:\n{1!r}"
message = template.format(type(ex).__name__, ex.args)
print(message)
def SendSerial(self, data):
try:
if self.ser.is_open:
s = str(data)
chars = []
for c in s:
chars.append(ord(c))
chars = list(map(int, chars))
self.ser.write(chars)
self.ser.flush()
except Exception as ex:
template = "ss: An exception of type {0} occured. Arguments:\n{1!r}"
message = template.format(type(ex).__name__, ex.args)
print(message)
def ReadSerial(self, tmr, period):
try:
if self.ser.inWaiting() > 0:
__stb = self.ser.read(self.ser.inWaiting())
self.buffer += __stb
except Exception as ex:
template = "rs: An exception of type {0} occured. Arguments:\n{1!r}"
message = template.format(type(ex).__name__, ex.args)
print(message)
if not tmr:
return
self.timer = threading.Timer(period, self.ReadSerial, [ True, period])
self.timer.start()
return
mySer = myser()
mySer.OpenSerial('COM7', 19200, 'N', 1, 8, 0)
data = '010111010001'
mySer.SendSerial(data)
您可以使用package struct将数据转换为二进制,然后将其与PySerial一起发送感谢您的回答!我可以使用pyserial一次发送12位吗?@scholi