野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 28361|回复: 11

【野火多功能调试助手】

[复制链接]

野火PID调试助手通讯协议

发表于 2020-6-30 21:14:32 | 显示全部楼层 |阅读模式

] 本帖最后由 LONG_R3acc 于 2020-6-30 21:16 编辑 [/i]

[md]野火多功能调试助手用户手册

——PID调试助手

修订历史

日期 版本 更新内容
2020/6/30 0.0.1 -

指令格式详解

指令包格式

字节数 4bytes 1bytes 4bytes 1bytes … … … … … … 1 bytes
名称 包头 通道地址 包长度 指令 参数1 参数2 校验和
内容 0x59485A53 xxxx xxxx xxxx xxxx xxxx xxxx
  1. 所有多字节的低字节在前
  2. 包头固定为四字节的0x59485A53
  3. 通道地址1到5对应软件上的CH1到CH5,CH1为0x01,CH2为0x02;
  4. 包长度为从包头到校验的所有数据长度。
  5. 指令为相应的功能码。
  6. 参数为指令需要参数时加入。
  7. 校验为校验和方式——8位。

指令详解

指令汇总

下位机——\>上位机:
指令 参数 功能
0x01 1个,目标值,int类型 设置上位机通道的目标值
0x02 1个,实际值,int类型 设置上位机通道实际值
0x03 3个,P、I、D,float类型 设置上位机PID值
0x04 设置上位机启动指令(同步上位机的按钮状态)
0x05 设置上位机停止指令(同步上位机的按钮状态)
0x06 1个,目标值,unsigned int类型 设置上位机周期
上位机——\>下位机:
指令 参数 功能
0x10 3个,P、I、D,float类型 设置下位机的PID值
0x11 1个,目标值,int类型 设置下位机的目标值
0x12 启动指令
0x13 停止指令
0x14 复位指令
0x15 1个,目标值,unsigned int类型 设置下位机周期

设置上位机通道的目标值

  • 功能说明:设置上位机对应通道的目标值。
  • 输入参数:目标值,int类型的数据。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 4bytes 1 bytes
名称 包头 通道地址 包长度 指令 目标值 校验和
内容  0x59485A53 xxxx 0x0F 0x01  xxxx  xxxx

目标值:

设置上位机的目标值(int类型数据)

发送通道的实际值

  • 功能说明:发送实际值给上位机。
  • 输入参数:实际值,int类型的数据。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 4 bytes 1 bytes
名称 包头 通道地址 包长度 指令 实际值 校验和
内容 0x59485A53 xxxx 0x0F 0x02 xxxx xxxx

实际值:

设置上位机的实际值(int类型数据)

发送PID参数给上位机

功能说明:下位机发送P、I、D参数给上位机。

输入参数:P、I、D参数,三个float类型的数据。

字节数 4bytes 1bytes 4bytes 1bytes 4bytes 4bytes 4bytes 1 bytes
名称 包头 通道地址 包长度 指令 P参数 I参数 D参数 校验和
内容 0x59485A53  xxxx 0x17  0x03 xxxx xxxx xxxx xxxx

P 参数:

下位机要发送的P参数(float类型数据)

I 参数:

下位机要发送的I参数(float类型数据)

D 参数:

下位机要发送的D参数(float类型数据)

下位机同步启动按钮指令

  • 功能说明:下位机发送同步启动按钮状态指令给上位机。
  • 输入参数:无。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 1 bytes
名称 包头 通道地址 包长度 指令 校验和
内容 0x59485A53 xxxx 0x0000000F 0x04 xxxx

下位机同步停止按钮指令

  • 功能说明:下位机发送同步停止按钮状态指令给上位机。
  • 输入参数:无。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 1 bytes
名称 包头 通道地址 包长度 指令 校验和
内容 0x59485A53 xxxx 0x0000000F 0x05 xxxx

下位机发送周期值

  • 功能说明:下位机发送周期给上位机。
  • 输入参数:周期,正整数类型的数据。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 4 bytes 1 bytes
名称 包头 通道地址 包长度 指令 周期 校验和
内容 0x59485A53 xxxx 0x0F 0x06 xxxx xxxx

周期:

下位机需要设置的周期值(正整数类型数据:unsigned int)

上位机发送PID参数

  • 功能说明:上位机发送P、I、D参数给下位机。
  • 输入参数:P、I、D参数,三个float类型的数据。
字节数 4bytes 1bytes 4bytes 1bytes 4bytes 4bytes 4bytes 1 bytes
名称 包头 通道地址 包长度 指令 P参数 I参数 D参数 校验和
内容 0x59485A53  xxxx 0x17  0x10 xxxx xxxx xxxx xxxx

P 参数:

上位机要发送的P参数(float类型数据)

I 参数:

上位机要发送的I参数(float类型数据)

D 参数:

上位机要发送的D参数(float类型数据)

上位机发送目标值

  • 功能说明:上位机发送目标值给下位机。
  • 输入参数:目标值,int类型的数据。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 4 bytes 1 bytes
名称 包头 通道地址 包长度 指令 目标值 校验和
内容 0x59485A53 xxxx 0x0F 0x11 xxxx xxxx

目标值:

上位机发送给下位机的目标值(int类型数据)

上位机发送启动指令

  • 功能说明:上位机发送启动指令给下位机。
  • 输入参数:无。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 1 bytes
名称 包头 通道地址 包长度 指令 校验和
内容 0x59485A53 xxxx 0x0000000F 0x12 xxxx

上位机发送停止指令

  • 功能说明:上位机发送停止指令给下位机。
  • 输入参数:无。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 1 bytes
名称 包头 通道地址 包长度 指令 校验和
内容 0x59485A53 xxxx 0x0000000F 0x13 xxxx

上位机发送复位指令

  • 功能说明:上位机发送停止指令给下位机。
  • 输入参数:无。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 1 bytes
名称 包头 通道地址 包长度 指令 校验和
内容 0x59485A53 xxxx 0x0000000F 0x14 xxxx

上位机发送周期

  • 功能说明:上位机发送周期给下位机。
  • 输入参数:周期,正整数类型的数据。

指令包格式:

字节数 4bytes 1bytes 4bytes 1bytes 4 bytes 1 bytes
名称 包头 通道地址 包长度 指令 周期 校验和
内容 0x59485A53 xxxx 0x0F 0x15 xxxx xxxx

野火大学堂——(敲黑板)这是重点,要考的

【野火大学堂】简介

Image text

野火大学堂是一个电脑客户端,主要用来方便用户下载野火所有产品的资料,是一款集资料下载,在线文档,在线视频和资料更新推送于一体的软件, 免费登录,下载速度快过百度云。以后野火的资料发布和更新主要是通过野火大学堂来完成。 以后嵌入式学习,不妨来【野火大学堂】看看,stm32,rt1052,linux,fpga,freertos,rt-thread,ucos,liteos,emwin,emxgui,lwip等资料应有尽有,一站式学习,省时又省力。

【野火大学堂】下载地址(复制至浏览器打开)

【野火大学堂】登录方式

  1. 微信:手机微信扫码登录(推荐);
  2. 野火论坛:论坛帐号登录,没有帐号的可以先到野火论坛www.firebbs.cn先注册个帐号(推荐);
  3. QQ:要想使用QQ扫码登录,必须先绑定论坛帐号,如果没有论坛帐号的可以先到野火论坛www.firebbs.cn先注册个帐号,并将论坛帐号与QQ绑定;
  4. Github:Gitbub帐号登录。

产品更新及售后支持

野火的产品资料更新会第一时间发布到论坛

购买野火产品请到野火官方淘宝店铺

在学习或使用野火产品时遇到问题可在论坛发帖子与我们交流。

回复

使用道具 举报

发表于 2021-8-3 17:17:22 | 显示全部楼层
请问一下,为什么我能 通过单片机 发送目标值和实际值给上位机,但是没有PID助手没有图形呢?感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-20 11:07:07 | 显示全部楼层
龚智超666 发表于 2021-8-3 17:17
请问一下,为什么我能 通过单片机 发送目标值和实际值给上位机,但是没有PID助手没有图形呢?感谢 ...

用串口助手打印16进制数据看看对不对
回复 支持 反对

使用道具 举报

发表于 2021-11-9 09:24:52 | 显示全部楼层
有没有现成的c文件啊,接口程序例程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-19 17:23:19 | 显示全部楼层
244141084 发表于 2021-11-9 09:24
有没有现成的c文件啊,接口程序例程

有的,看电机教程里面,凡是用到PID的都有的
回复 支持 反对

使用道具 举报

发表于 2022-7-11 20:05:00 | 显示全部楼层
请问有标准库的c文件吗
回复 支持 反对

使用道具 举报

发表于 2022-10-29 21:44:20 | 显示全部楼层
恭喜发财Zz 发表于 2022-7-11 20:05
请问有标准库的c文件吗

也想找这个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-30 12:04:43 | 显示全部楼层

现在这个移植过去就可以了
回复 支持 反对

使用道具 举报

发表于 2022-11-15 16:28:13 | 显示全部楼层
版主,可以给一份野火PID调试助手的协议例程吗
回复 支持 反对

使用道具 举报

发表于 2023-1-5 14:59:53 | 显示全部楼层
校验和是怎么计算的
回复 支持 反对

使用道具 举报

发表于 2023-8-14 09:40:58 | 显示全部楼层
我刚学习试了一下没有反应,请各位大佬帮帮忙
void ACK()
{
        u8 data[30],i;
        u8 sum=0;
        data[0]=0x59;
        data[1]=0x48;
        data[2]=0x5A;
        data[3]=0x53;
        data[4]=0x01; //通道
        data[5]=0x17;//长度;        
        data[6]=0x00;//长度;        
        data[7]=0x00;//长度;        
        data[8]=0x00;//长度;        
        data[9]=0x03;//指令
        data[10]=0x00;//目标值;
        data[11]=0x00;//目标值;
        data[12]=0x80;//目标值;
        data[13]=0x3F;//目标值;
                data[14]=0x00;//目标值;
        data[15]=0x00;//目标值;
        data[16]=0x00;//目标值;
        data[17]=0x40;//目标值;
                data[18]=0x00;//目标值;
        data[19]=0x00;//目标值;
        data[20]=0x40;//目标值;
        data[21]=0x40;//目标值;
        for(i=0;i<22;i++){
                sum+=data[i];
        }
        data[22]=sum;//指令

        UartASendStr(data,23);
}

野火论坛202308140939488981..png
回复 支持 反对

使用道具 举报

发表于 2023-8-14 21:05:06 | 显示全部楼层
lianjiaHAO 发表于 2023-8-14 09:40
我刚学习试了一下没有反应,请各位大佬帮帮忙
void ACK()
{

这个多字节数据不能单字节发送,实际收到的包头应该是53 5A 48 59
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-1 13:26 , Processed in 0.400551 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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