串行读取到UTF-8解码

时间:2018-10-30 20:11:19

标签: python utf-8 arduino pyserial

我试图用python创建一个程序,该程序读取串行端口,然后解码接收到的信息(在这种情况下为GPS坐标和超声波传感器),然后我需要创建一些“ if循环”来保存将此串行数据转换为变量,但是在我看来,我的if语句不太好,下面附上代码:

import serial

Ard = serial.Serial(port='COM5', baudrate=9600, 
bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, timeout=2)

try:

Ard.isOpen()
print("Conexion con el puerto serial: COM5, establecida satisfactoriamente!\n")

except:

  print("Error")
  exit()

 if (Ard.isOpen()):

  try:
    while (1):

        aux = Ard.readline()
        a = aux.decode('utf-8')
        print(a)


        if a == '1':

         print("It works")
         lat = float(a)

 except Exception:

       print("It doesn't work")
else:

    print("Port is not opening")

我尝试不使用UTF-8,但是使用a = float(Ard.readline()),它正在工作(至少将串行变量打印为float),但是现在它不起作用,并且它从未进入if循环,我尝试了if { {1}}可以正常工作,所以事情是我不知道变量a != 1的解码或类型是什么,我需要将其浮点。我正在从arduino UNO中读取内容,并且正在将pycharm用作pyserial和3.7解释器的python IDE,请帮助我。

0 个答案:

没有答案