【野火多功能调试助手】
本帖最后由 LONG_R3acc 于 2020-6-30 21:16 编辑野火多功能调试助手用户手册
==========================
——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 |
**野火大学堂**——(敲黑板)这是重点,要考的
--------------------------------------------
### 【野火大学堂】简介
!(https://cloud.firebbs.cn/forum/202005/13/113447psxxq2sjr99rnsj7.png)
野火大学堂是一个电脑客户端,主要用来方便用户下载野火所有产品的资料,是一款集资料下载,在线文档,在线视频和资料更新推送于一体的软件,
免费登录,下载速度快过百度云。以后野火的资料发布和更新主要是通过野火大学堂来完成。
以后嵌入式学习,不妨来【野火大学堂】看看,stm32,rt1052,linux,fpga,freertos,rt-thread,ucos,liteos,emwin,emxgui,lwip等资料应有尽有,一站式学习,省时又省力。
### 【野火大学堂】下载地址(复制至浏览器打开)
- 下载地址1:http://t.cn/A6w7JiKs (境外,sourceforge)
- 下载地址2:https://cloud.embedfire.com/software/FireClass/package/FireClass-Installer-x64-v1.0.2.4.exe
- 下载地址3:https://pan.baidu.com/s/1N6ODCAO4i2x8rXXOLMJm4Q提取码:hn4w(百度云下载)
### 【野火大学堂】登录方式
1. 微信:手机微信扫码登录(推荐);
2. 野火论坛:论坛帐号登录,没有帐号的可以先到野火论坛www.firebbs.cn先注册个帐号(推荐);
3. QQ:要想使用QQ扫码登录,必须先绑定论坛帐号,如果没有论坛帐号的可以先到野火论坛www.firebbs.cn先注册个帐号,并将论坛帐号与QQ绑定;
4. Github:Gitbub帐号登录。
产品更新及售后支持
------------------
野火的产品资料更新会第一时间发布到[论坛](https://www.firebbs.cn):<https://www.firebbs.cn>
购买野火产品请到[野火官方淘宝店铺](http://fire-stm32.taobao.com):<http://fire-stm32.taobao.com>
在学习或使用野火产品时遇到问题可在论坛发帖子与我们交流。
请问一下,为什么我能 通过单片机 发送目标值和实际值给上位机,但是没有PID助手没有图形呢?感谢 龚智超666 发表于 2021-8-3 17:17
请问一下,为什么我能 通过单片机 发送目标值和实际值给上位机,但是没有PID助手没有图形呢?感谢 ...
用串口助手打印16进制数据看看对不对 有没有现成的c文件啊,接口程序例程 244141084 发表于 2021-11-9 09:24
有没有现成的c文件啊,接口程序例程
有的,看电机教程里面,凡是用到PID的都有的 请问有标准库的c文件吗 恭喜发财Zz 发表于 2022-7-11 20:05
请问有标准库的c文件吗
也想找这个 jackhwang 发表于 2022-10-29 21:44
也想找这个
现在这个移植过去就可以了 版主,可以给一份野火PID调试助手的协议例程吗 校验和是怎么计算的 我刚学习试了一下没有反应,请各位大佬帮帮忙
void ACK()
{
u8 data,i;
u8 sum=0;
data=0x59;
data=0x48;
data=0x5A;
data=0x53;
data=0x01; //通道
data=0x17;//长度;
data=0x00;//长度;
data=0x00;//长度;
data=0x00;//长度;
data=0x03;//指令
data=0x00;//目标值;
data=0x00;//目标值;
data=0x80;//目标值;
data=0x3F;//目标值;
data=0x00;//目标值;
data=0x00;//目标值;
data=0x00;//目标值;
data=0x40;//目标值;
data=0x00;//目标值;
data=0x00;//目标值;
data=0x40;//目标值;
data=0x40;//目标值;
for(i=0;i<22;i++){
sum+=data;
}
data=sum;//指令
UartASendStr(data,23);
}
lianjiaHAO 发表于 2023-8-14 09:40
我刚学习试了一下没有反应,请各位大佬帮帮忙
void ACK()
{
这个多字节数据不能单字节发送,实际收到的包头应该是53 5A 48 59
页:
[1]