首页 > 解决方案 > 串行读取到 UT​​F-8 解码

问题描述

我正在尝试在 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()),它正在工作(至少将串行变量打印为浮点数),但现在它没有并且它永远不会进入 if 循环,我尝试了 if a != 1,它可以工作,所以事情是我不知道变量的解码或类型,a我需要它是浮动的。我正在阅读 arduino UNO,我正在使用 pycharm 作为带有 pyserial 和 3.7 解释器的 python IDE,请帮助我。

标签: pythonutf-8arduinopyserial

解决方案


推荐阅读