匿名上位机数据波形显示以及下位机参数调试

本文介绍了博主如何使用匿名上位机v7与STM32F103C8T6单片机通过串口进行数据通信,包括数据帧结构、小端模式处理、校验算法以及如何利用上位机绘制波形并调试STM32特定参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

        博主所选用上位机为匿名上位机v7,下位机为stm32,所用MCU为f103c8t6,进行一个简单的上位机显示数据的波形和对单片机指定参数的调试。

        大概的思路为匿名上位机与stm32串口通信,在windows端匿名上位机绘制实时数据波形,并实现在遵循通信协议的前提下实现对下位机的某指定参数的修改,从而达到便捷调试的目的。

接线图:

7f8869b9e1554c59b0ec34040f2f1185.jpeg

匿名上位机接收stm32发送数据的通信帧格式:

b827d1cf579540d88d4becea51a9941c.png

DATA 数据内容中的数据,采用小端模式,低字节在前,高字节在后。
注意:不能发送小数,需要将小数乘以10的n次方再发送,之后在匿名上位机v7端设置接收数据的放大倍数为1/10^n即可接收到原始数据。
和校验 SUM CHECK 计算方法:
从帧头 0xAA 字节开始,一直到 DATA 区结束,对每一字节进行累加操作,只取低 8 位
附加校验 ADD CHECK 计算方法:
计算和校验时,每进行一字节的加法运算,同时进行一次 SUM CHECK 的累加操作,只取低 8 位。
校验计算示例:
假设数据帧缓存为 data_buf 数组,0xAA 存放于数组起始位置,那么 data_buf[3]存放的是数据长度,校验程序
如下:
uint8_t sumcheck = 0 ;
uint8_t addcheck = 0 ;
for (u8 i =0 ; I < (data_buf [3 ]+4 ); i ++)
{
sumcheck += data_buf [i ];
//从帧头开始,对每一字节进行求和,直到DATA区结束
addcheck += sumcheck ;
//每一字节的求和操作,进行一次sumcheck的累加
}
//如果计算出的sumcheck和addcheck和接收到的check数据相等,代表校验通过,反之数据有误
if (sumcheck == data_buf [data_buf [3 ]+4 ] && addcheck == data_buf [data_buf [3 ]+5 ])
        return true ;
//校验通过
else
        return false ; //校验失败
采取灵活格式帧
 

stm32接收匿名上位机发送的数据通信帧格式:

帧头1
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值