stm32与上位机使用python进行通信

项目目标

主要用于测试单片机与python写的上位机联机问题。

项目任务

通过stm32采集电压数据并发送出来,动态绘图,已完成。
采用线程问题解决,同时用列表来保存数据,用matplotlab绘制动态图。

任务思路

用python做上位机数据采集,串口 一直进行检测,采集到数据之后,判断是否为空或者数据数据长度不够五位,采集完毕之后将数据类型转换为浮点型,放入列表里面,并动态绘制出来,代码如下所示,延时0.2是为了与下位机数据延时相同,尽量保证数据接收正常。

# 读取数据
def recv(serial):
    while True:
        data = serial.read_all()
        if data == b'':
            continue
        else:
            break
    return data

#通过线程来管理数据读取功能
def data_processing_thread(serial):
    while True:
        sleep(0.2)  # 模拟数据处理延时
        data = recv(serial).decode('utf-8')
        #限制数据位数小于5,数据取值范围在0-5
        if data != '' and len(data) > 5 and 0 <= float(data) <= 5:
            print("receive : ", data)
            # 假设接收到的数据可以直接转换为float,并将其放入队列中
            data_queue.put(float(data))
            # list.append(float(data))
            print(list)
            if data == 'x':
                print("exit")
                break

下位机发送使用stm32f103zet6,板子采用野火指南者,通过DMA采集电压数据发送给串口。

我通过cmd命令行运行的,所以看到的数据是后面的样子。
在这里插入图片描述
源代码参考链接
https://download.csdn.net/download/lengxi1/88850819

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值