在python中使用Ser.readline()时,不可见的未知字符



我正在研究一个项目,在角度传感器(通过微)与python GUI之间进行通信

我试图通过UART从微控制器发送2字节的数据(~范围从0-360,在255之后超过1字节)

这就是我如何分割数据,并将它们合并在接收端

angle = readangle();
send[0] = angle ;
send[1] = angle >> 8;

回到python

self.ser = serial.Serial("COM6", 115200, timeout=0.05)
f = self.ser.readline(2)
.
.
.
.
x = ord(self.f[1])  
x = x << 8 | ord(self.f[0])  
self.angle = x   #  this updates the angle value in the GUI 

它几乎总是给出正确的值,但是!值突然指向零,这使得我的GUI进行深入研究(每30-50个样本中一次)

<>之前% up0EEA $³我在这里³179% up0EEA $³我在这里³179...% up0EEA $E我在这里E202% up0EEA $c我在这里c231% up0EEA $我在这里257% up0EEA $我在这里261% up0EEA $Í—HERE("在ASCII码之前有空格吗?")我在这里我0% up0EEA $"我在这里"——又来了!!"0% up0EEA $我我在这里我238之前

AND NOW !!我突然想到如何去掉串行数据

中的不可见字符

我认为我的代码有许多self.ser.open()self.ser.close()

命令self.ser.flushInput()解决了我的问题

f = self.ser.readline()
        self.ser.flushInput()

相关内容

  • 没有找到相关文章

最新更新