鱼C论坛

 找回密码
 立即注册
查看: 3350|回复: 4

串口调试接收不到数据

[复制链接]
发表于 2023-7-27 18:01:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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):
            sleep(0.02)
            try:
                recv_len = self.serial.inWaiting()
                if recv_len > 0:
                    recv_data_raw = self.serial.read(self.serial.inWaiting())
                    if (recv_data_raw != None):
                        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("COM1", 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!")
键盘向串口发送数据之后,标橙色的位置接受到的数据一直是0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-30 06:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表