wennwennn 2022-03-28 09:45 采纳率: 60%
浏览 9
已结题

“pyserial基本用法学习”一节中没有打印inp的解码内容

问题遇到的现象和发生背景

环境:win10+python3.9+pycharm2020.2
在“pyserial基本用法学习”一节中,运行函数至要求input时,输入字符没输出decode内容,而是再次提示inpyt。
输入quit后可以正常退出

问题相关代码,请勿粘贴截图

-- coding: utf-8 --

import sys
import serial
import threading
from time import sleep

class Uart(object):
def init(self, port, baud):
self.err = 0
# open serial
try:
self.serial = serial.Serial(port, baud)
print("open serial success.")
except:
print("open serial error!")
self.err = -1

def uart_recv_thread(self):
    print("start uart_recv_thread.")
    while(True):
        try:
            recv_data_raw = self.serial.readline()
            data = "DEVICE---->PC: " + recv_data_raw.decode()
            print(data)
        except:
            print("recv data error!")
            break

def start_recv_thread(self):
    thread = threading.Thread(target=self.uart_recv_thread, daemon=True)
    thread.start()

def send_uart_data(self, data):
    self.serial.write(data.encode())

def uart_close(self):
    self.serial.close()

if name == "main":
myuart = Uart("COM3", 9600)
if (0 == myuart.err):
print("Init Uart Success.")
# 如果打开串口成功,启动接收线程,准备实时的接收数据
myuart.start_recv_thread()

while(True):
    input_data = input("Please input data...")
    if (input_data == "quit"):
        # 退出
        myuart.uart_close()
        break
    else:
        #发送数据给设备
        myuart.send_uart_data(input_data)
    sleep(0.01)

print("exit!")
运行结果及报错内容

程序主体正常运行,可以退出,只是在输入非quit时不打印解码内容

我的解答思路和尝试过的方法

debug,发现没执行函数“uart_recv_thread”

我想要达到的结果

希望解释原因

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月5日
    • 创建了问题 3月28日

    悬赏问题

    • ¥15 mmo能不能做客户端怪物
    • ¥15 osm下载到arcgis出错
    • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
    • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
    • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
    • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
    • ¥15 QQ邮箱过期怎么恢复?
    • ¥15 登录他人的vue项目显示服务器错误
    • ¥15 (标签-android|关键词-app)
    • ¥15 comsol仿真压阻传感器