LONG_R3acc 发表于 2020-6-30 21:14:32

【野火多功能调试助手】

本帖最后由 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>

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

龚智超666 发表于 2021-8-3 17:17:22

请问一下,为什么我能 通过单片机 发送目标值和实际值给上位机,但是没有PID助手没有图形呢?感谢

LONG_R3acc 发表于 2021-9-20 11:07:07

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

用串口助手打印16进制数据看看对不对

244141084 发表于 2021-11-9 09:24:52

有没有现成的c文件啊,接口程序例程

LONG_R3acc 发表于 2021-11-19 17:23:19

244141084 发表于 2021-11-9 09:24
有没有现成的c文件啊,接口程序例程

有的,看电机教程里面,凡是用到PID的都有的

恭喜发财Zz 发表于 2022-7-11 20:05:00

请问有标准库的c文件吗

jackhwang 发表于 2022-10-29 21:44:20

恭喜发财Zz 发表于 2022-7-11 20:05
请问有标准库的c文件吗

也想找这个

LONG_R3acc 发表于 2022-10-30 12:04:43

jackhwang 发表于 2022-10-29 21:44
也想找这个

现在这个移植过去就可以了

wjzd 发表于 2022-11-15 16:28:13

版主,可以给一份野火PID调试助手的协议例程吗

木偶ll 发表于 2023-1-5 14:59:53

校验和是怎么计算的

lianjiaHAO 发表于 2023-8-14 09:40:58

我刚学习试了一下没有反应,请各位大佬帮帮忙
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);
}

ppcpc 发表于 2023-8-14 21:05:06

lianjiaHAO 发表于 2023-8-14 09:40
我刚学习试了一下没有反应,请各位大佬帮帮忙
void ACK()
{


这个多字节数据不能单字节发送,实际收到的包头应该是53 5A 48 59
页: [1]
查看完整版本: 【野火多功能调试助手】