Pycharm下Pyside2和Pyserial 及Qthread的串口接收CH340G,inwaiting()一直为0

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

Pycharm下Pyside2和Pyserial编写的串口调试助手

img


其中使用Qthread实现的多线程串口接收
硬件是通过CH340G转的USB串口

def run(self):
    while self.alive:
        try:
            **num = self.ser.inWaiting()__**
            if num > 0:
                data = self.ser.read(num)
                self.U_signal.emit(data)
        except Exception as e:
            print(e)
            break

timeout尝试了0.01和1没有效果
多线程的接收代码中的self.ser.inWaiting()的结果一直为0,导致无法接收到数据

使用虚拟串口助手VSPD,将程序和网上下载的串口调试助手进行调试。可以实现数据的传输,虽然有些不稳定!并且下载的串口调试助手可以正常接收CH340G传上来的数据!
硬件中采用while(1)不断发送时,程序有反应, 可以接收到部分数据,但是单次发送时没有接收到!

网上有看到inwaiting()为0的情况,说是有后台程序占用,但是我没有发现!很懵

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

采用pyside2.QSerialport库代替了原来的pyserial可以正常使用。
原来的问题没有解决,跳过了。。。