单片机+上位机联合实验报告

因项目需求,于是开发了一个如下简陋功能的上位机:

  1. stm32单片机的温度和距离数据通过串口传输到上位机。
  2. 上位机读取数据后显示在面板并同时将数据写入数据库。

系统开发环境:WIN10 64位
QT:V5.15.1
MySQL:V8.0.21

①首先搭建qt和数据库环境:以保证能够将数据写入数据库

(qt和数据库环境联合搭建的博客)

②单片机的数据帧格式:

例如:“0xff,21.149988,12.100000,0xfd”
注:本人stm32单片机使用FreeRTOS系统,使用的是printf这个函数,命令如下:

printf("%s","0xff");
printf("%c",',');
printf("%f",p_dt_data->temperature_obj);
printf("%c",',');
printf("%f",p_dt_data->distance/10.0);
printf("%c",',');
printf("%s","0xfd");

单片机的串口接口为:USART1_TX(PA9) 和 USART1_RX(PA10) 。外接一个CMSIS-DAP转接口,既可以下载程序,又能打印串口数据,非常方便。
下位机于是就能将采集到的温度和距离数据传到上位机了。

③QT中上位机设计:

这是第一个版本,如果后面有时间,看看加一个qchart,用曲线实时显示采集到的数据。
在这里插入图片描述

对象别名:
在这里插入图片描述

这样就能看懂代码中各个对象的意思了。

④上代码(仅含主要代码):

全部代码已上传码云Gitee。

第一段://开机运行主程序

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
   
    ui->setupUi(this);
    ui->sendButton->setEnabled(false);//设置发送按钮失效
    ui->baudrateBox->setCurrentIndex(1);//设置波特率选择框默认为index=1的值即115200
    ui->comboBox->clear();//清空串口选择框的内容
    foreach(const QSerialPortInfo &info , QSerialPortInfo::availablePorts())// foreach(variable ,container)
    {
   
        ui-
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32程序IAP(In-Application Programming)是一种在单片机运行时通过串口进行自动升级的技术。IAP的实现需要涉及到单片机端的源码和上位端的源码。 在单片机端,需要编写实现IAP功能的源码。这段代码通常会包括接收上位发送的升级文件,并将其存储到单片机的内存中。之后,单片机会进行校验和解析升级文件,将其写入到flash或者其他存储器中,完成程序的升级。同时,也需要实现一些监测和保护制,用于保证升级的安全性和可靠性。 在上位端,需要编写用于发送升级文件给单片机的源码。这段代码通常会包括打开串口、读取升级文件、分片发送给单片机等操作。同时,还需要实现一些协议和通信制,用于与单片机进行数据交互,并实时监测升级状态,确保升级过程的正确执行。 整套资料包括单片机端和上位端的源码、协议文档、使用说明等。这些资料可以作为开发人员参考和学习,用于了解和实现STM32程序IAP自动升级功能。通过这些资料,开发人员可以快速上手,熟悉并掌握IAP的实现方法,提高开发效率。 总之,STM32程序IAP自动升级涉及到单片机端和上位端的源码,分别负责实现单片机的升级功能和与单片机进行通信。整套资料的提供为开发人员提供了学习和实践的基础,帮助他们快速掌握和应用这一技术。 ### 回答2: STM32程序IAP是指通过串口升级的方式对单片机程序进行自动升级。IAP(In Application Programming)是一种在应用程序运行期间对单片机进行编程的技术。 在STM32单片机中,使用IAP技术可以通过串口接口进行固件升级。整个升级过程可以分为两部分:单片机源码和上位源码。 单片机源码负责接收上位发送的固件数据,并进行解析和存储。它包括串口接收中断的设置和数据解析、Flash存储管理以及固件升级的触发条件等功能。单片机源码需要根据具体的需求进行开发,并且需要考虑到升级过程中的容错处理和异常情况的处理。 上位源码负责将需要升级的固件数据发送给单片机。它包括串口通信的设置、文件读取和发送的功能。上位源码可以使用各种编程语言进行开发,如Python、C#等,并根据具体的需求进行定制和优化。 整套资料包括单片机源码、上位源码、使用说明以及示例固件等内容。这些资料提供了完整的升级解决方案,使用户可以根据自己的需求进行开发和定制。 通过使用STM32程序IAP自动升级,可以方便地实现单片机固件的升级,提高了开发效率和产品的可维护性。同时,这种方式还可以避免由于硬件设计不当或者其他原因导致的固件更新困难的问题。 ### 回答3: STM32是一种广泛应用于嵌入式系统中的微控制器,它具有出色的性能和强大的功能。在STM32中,可以使用IAP(In-Application Programming)技术来实现自动升级。自动升级通过串口来进行,这意味着可以通过与计算连接的串口进行单片机程序的升级。 在实现自动升级的过程中,需要编写 STM32 单片机的程序代码以及上位的源码。 首先,需要编写单片机程序的源码。这个程序需要能够通过串口接收到来自上位的升级指令,并且能够将升级文件下载到单片机中进行更新。在编写单片机程序时,需要使用 STM32 的串口通信库函数,以实现与上位的数据交互。同时,还需要编写代码来处理接收到的升级文件,并将其写入到单片机的 Flash 存储器中,实现程序的升级。 其次,还需要编写上位的源码。这个上位程序需要能够与单片机进行串口通信,并且能够将升级文件发送给单片机。在编写上位程序时,需要使用计算的串口通信库函数,以实现与单片机的数据交互。同时,还需要编写代码来读取本地的升级文件,并将其发送给单片机,实现程序的升级。 整套资料包括单片机程序源码和上位程序源码。这些源码需要详细注释,以便其他开发人员能够理解和使用。此外,还需要提供详细的操作说明,包括如何编译、下载和运行单片机程序,以及如何编译和运行上位程序。此外,还可以提供相关的参考资料和示例代码,以帮助开发人员更好地理解和使用该自动升级系统。 综上所述,实现STM32程序IAP自动升级串口升级需要编写单片机程序和上位程序的源码,并提供整套资料,包括源码、操作说明和参考资料等,以便其他开发人员能够使用和理解。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值