STM32 匿名助手提升电机控制调试效率(下位机代码和上位机操作演示)

news2024/12/25 2:49:26

目录

前言

通信协议选择

上位机配置实现

下位机代码实现

通信效果演示

总结


前言

前面介绍了通过VOFA上传变量并显示成波形方便调试的方法,VOFA上传的是浮点,一个浮点需要4个byte才能够表示,这对本就不是很快的串口带来说有不小负担,而且对于定点的MCU上传数据就不友好了,VOFA上传数据的方法参考下面的链接:

STM32 VOFA+串口调试助手提升电机控制调试效率(下位机代码和上位机操作演示)_stm32的串口使用什么软件调试_卡洛斯伊的博客-CSDN博客

这里介绍一下匿名助手如何显示下位机的数据波形,以后的开发中可以根据实际情况和使用习惯选择合适的工具。 

通信协议选择

这里选择灵活格式帧模式,参考软件的协议介绍文档。

实际用的时候因对协议不熟悉,踩不了少坑,这里总结一下:

如下是一帧满足通信协议的数据:

帧头:0xAB 一个字节,固定的,改成其他会通信不成功,显示不了波形

源地址:一个字节,随便写,0x00也行,不影响波形显示

目标地址: 一个字节,随便写,不影响波形显示

功能码:一个字节,这里是0xF1,需要和上位机对应

数据长度:两个字节,低字节在前,如下表示传输的数据有6个

数据内容:如下6-11都是要传的数据长度,一共6个,用来表示3个int16_t的变量。具体看传输变量的数量来定

和校验和附加校验就是通过传输的内容进行计算得到的两个字节的校验

 计算方法如下:

上位机配置实现

这里配置显示三相电流,分别用int16_t 来表示,如上面的协议说明,配置只需要添加数据即可。

 配置好0xF1的数据后,再点小扳手,找到0xF1#0:IA-IC,再点确认就可以正常显示波形了。

 如果没有波形,再点一下右下角的运行按钮

下位机代码实现

 简单定义一个数组,参考通信协议,再定义一个发送函数

static uint8_t tempData[14] = {0xAB,0xFE,0x05,0xF1,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void UART_Debug(void);

把要传输的数据放到指定位置,简单粗暴,在周期任务里面或者中断里面调用发送函数即可。

void UART_Debug(void)
{
          uint16_t flen = tempData[4]+tempData[5]*256;
          uint8_t sumcheck=0;
          uint8_t addcheck=0;
          
         tempData[6] =((int16_t)((fIa)*100)&0xFF);
         tempData[7] =((int16_t)((fIa)*100)>>8);
         tempData[8] =((int16_t)((fIb)*100)&0xFF);
         tempData[9] = ((int16_t)((fIb)*100)>>8);
         tempData[10] =((int16_t)((fIc)*100)&0xFF);
         tempData[11] =((int16_t)((fIc)*100)>>8);
        
         for(uint16_t i=0;i<(flen+6);i++)
          {
            sumcheck+=tempData[i];
            addcheck+=sumcheck;
           
          }
          tempData[12]=(uint8_t)sumcheck;
          tempData[13]=(uint8_t)addcheck;

          uart_write(&DRV_UART3, tempData,14U);
         
}

通信效果演示

匿名助手显示电流波形

总结

VOFA和匿名助手各有优劣,都能支持较高的波特率,这里没有进行详细对比,但对于工程应用来说,只要满足应用需要即可。在此感谢VOFA和匿名的作者分享这些工具,极大提高工程师的开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/496274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django框架之模型自定义管理器

类属性 objects 是manager类的一个对象&#xff0c;作用是与数据库进行交互。 当定义模型类没有指定管理器&#xff0c;django会为模型创建objects管理器。 表结构与数据 CREATE TABLE myapp_grades (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) NOT NULL,boy_num…

疫情红利出清后如何破局?华大智造的三场突围战

作者&#xff5c;严睿 华大智造&#xff08;688114.SH&#xff09;上市后的首份年报&#xff0c;亮点颇多。 比如2022年公司营收再创新高&#xff0c;达到42.31亿元&#xff0c;净利润同比增长3倍余&#xff1b;比如2022年度华大智造基因测序仪全球装机量达到600&#xff0c;…

处理日期和时间的 chrono 库

C11 中提供了日期和时间相关的库 chrono&#xff0c;通过 chrono 库可以很方便地处理日期和时间&#xff0c;为程序的开发提供了便利。chrono 库主要包含三种类型的类&#xff1a;时间间隔duration、时钟clocks、时间点time point。 1. Ratio 时间精度(节拍) std::chrono::ra…

helm和chart

Helm helm是Kubernetes 应用的包管理工具&#xff0c;主要用来管理 Charts&#xff0c;类似Linux系统的yum。Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata&#xff0c;以便于应用程序的分发。 he…

Linux驱动编程(总线设备驱动模型)

一、驱动编写的3种方法 1、传统写法 使用哪个引脚&#xff0c;怎么操作引脚&#xff0c;都写死在代码中。最简单&#xff0c;不考虑扩展性&#xff0c;可以快速实现功能。修改引脚时&#xff0c;需要重新编译。 2、总线设备驱动模型 引入 platform_device/platform_driver&am…

【.NET基础加强第八课--委托】

.NET基础加强第八课--委托 委托&#xff08;Delegate&#xff09;委托操作顺序实例多播委托—委托链实例实例委托传值 委托&#xff08;Delegate&#xff09; 委托&#xff08;Delegate&#xff09; 是存有对某个方法的引用的一种引用类型变量 委托操作顺序 1,定义一个委托类…

SpringCloud------Eureka修改实例显示信息、服务发现Discovery、自我保护(六)

SpringCloud------Eureka修改实例显示信息、服务发现Discovery、自我保护&#xff08;六&#xff09; 1.actuator微服务信息完善 2.服务发现Discovery 3.Eureka自我保护 actuator微服务信息完善 web和actuator依赖用于图形化监控 1.主机名称&#xff1a;服务名称修改 新增…

新库上线 | CnOpenData缺陷产品召回数据

缺陷产品召回数据 一、数据简介 缺陷产品召回&#xff0c;是指缺陷产品的生产商、销售商、进口商在得知其生产、销售或进口的产品存在可能引发消费者健康、安全问题的缺陷时&#xff0c;依法向职能部门报告&#xff0c;及时通知消费者&#xff0c;设法从市场上、消费者手中收回…

快速跑通环信IM Android Demo

1、以Android 4.0.0 Demo为例 https://www.easemob.com/download/demo &#xff08;下载别的版本的demo 可以修改版本号直接下载就就可以&#xff09; https://downloadsdk.easemob.com/downloads/easemob-sdk-4.0.0.zip 运行时遇到以下报错在项目build.gradle中添加运行时遇…

SAXS测试在材料结构表征中的应用与优势

SAXS测试在材料结构表征中的应用与优势 SAXS是指小角X射线散射&#xff0c;是一种用于研究物质结构的重要技术。SAXS技术可以用于表征各种材料的结构&#xff0c;如聚合物、胶体、纳米粒子等。本文将介绍SAXS测试在材料测试表征中的应用&#xff0c;包括SAXS曲线、比表面积、粒…

MySQL基础(四)运算符

1. 算术运算符 算术运算符主要用于数学运算&#xff0c;其可以连接运算符前后的两个数值或表达式&#xff0c;对数值或表达式进行加&#xff08;&#xff09;、减&#xff08;-&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;和取模&#xff08;%&am…

选对信息化管理系统,企业运营效率大幅提升!

随着信息化的发展&#xff0c;企业信息化管理系统已经成为企业独立商业活动和发展的重要基础设施之一。然而&#xff0c;在众多的信息化管理系统中&#xff0c;选择一款适合企业的信息化管理系统并不是一件易事&#xff0c;本文将从选型的角度&#xff0c;为企业提供一些选对合…

第二章 图像基本运算及变换

文章目录 前言一、图像运算1. 加减乘除2. 位运算 二、翻转与旋转1.翻转2.旋转 三、仿射变换1. 介绍2. 变换的数学表达2.1 平移2.2 缩放2.3 旋转 3. 变换矩阵4. 变换叠加5. 变换矩阵的逆推6.OpenCV实现以及手动实现6.1 手动实现6.2OpenCV实现 7.向量空间----补充 四、透视变换1.…

人脉变现小程序裂变定制开发

人脉变现小程序裂变定制开发可以提供以下服务&#xff1a; 需求分析&#xff1a;了解客户的业务需求和目标&#xff0c;并为其量身定制开发方案&#xff0c;提供专业的建议和意见。 UI/UX设计&#xff1a;根据客户的品牌形象和用户体验要求&#xff0c;设计出符合客户需…

简单实现基于UDP与TCP的回显服务器

目录 前言UDP 版的回显服务器需要用到的 api服务端客户端UDP 版本的字典客户端和字典服务器 TCP 版的回显服务器需要用到的 api服务器客户端对服务器进行改进(使用线程池)TCP 版本的字典客户端和字典服务器 前言 我们写网络程序, 主要编写的是应用层代码. 真正要发送这个数据,…

浅谈联网汽车安全漏洞

​“智能网联汽车存在内生共性问题&#xff0c;即软硬件的漏洞后门&#xff0c;基于此进行的网络攻击可以直接带来勒索、盗窃、大规模车辆恶意操控风险&#xff0c;还有数据泄露等网络安全事件。如果内生的漏洞后门问题不解决&#xff0c;系统自身难保&#xff0c;很难谈系统安…

浙大数据结构第四周之二叉搜索树与平衡二叉搜索树(AVL)

题目详情&#xff1a;04-树4 是否同一棵二叉搜索树 给定一个插入序列就可以唯一确定一棵二叉搜索树。然而&#xff0c;一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树&#xff0c;都得到一样的结果。于是…

【Python系列】一个简单的抽奖小程序

序言 很开心你能在万千博文中打开这一篇&#xff0c;希望能给你带来一定的帮助&#xff01;&#x1f44d;&#x1f3fb; 如果有什么问题&#xff0c;都可以添加下方我的联系方式&#xff0c;联系我噢~&#x1f601; ⭐️⭐️⭐️⭐️⭐️沟通交流&#xff0c;一起成为技术达人&…

SpringMVC底层原理源码解析

SpringMVC的作用毋庸置疑&#xff0c;虽然我们现在都是用SpringBoot&#xff0c;但是SpringBoot中仍然是在使用SpringMVC来处理请求。 我们在使用SpringMVC时&#xff0c;传统的方式是通过定义web.xml&#xff0c;比如&#xff1a; <web-app><servlet><servle…

jenkins配置笔记

文章目录 1.装Gogs插件2.配置截图及说明3.其他1.装Gogs插件 Gogs 插件是一个专门为集成 Gogs(一种类似于 Git 的开源版本控制系统)与 Jenkins 进行交互的插件。它允许 Jenkins 与 Gogs 之间进行双向通信,提高了 Jenkins 对于代码管理和构建的支持。 2.配置截图及说明 目前…