python - 串行读取到 UTF-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,请帮助我。
解决方案
推荐阅读
- c++ - RGB 到 HSV,反之亦然 - 有什么可以改进的?
- mysql - 当列值等于where子句动态查询中的搜索值时,MySQL按大小写排序
- python - 由于代理安装包pycharm
- kernel - 如何运行 Aion 内核脚本
- node.js - 如何按扩展名搜索文件并在文件夹和子文件夹中包含字符串?
- sqlite - 返回表中每个 id 的计数
- javascript - Highstock 双 yAxis - 图例可以拆分吗?
- python - 从多个 excel 模板文件创建 pandas 数据库 - python 3
- symfony-3.4 - 相关实体 Symfony 3 的表单构建器
- google-app-engine - 如何使用云构建将环境变量传递给 app.yaml