==86面板和风控盒通讯协议==
====物理层协议====
*通过RS485通讯，115200波特率，校验位无，数据位8位，停止位1位
=====帧格式表=====
{| class="wikitable sortable"
|-
! 起始位   !! 数据位 !! 校验位置 !! 结束位置
|-
|0xA5,一个字节长度||见数据位表，变长||数据位异或校验，一个字节长度（校验数据从帧头开始）||0x5A，一个字节长度
|}
=====数据位表=====
{| class="wikitable sortable"
|-
! 数据来源地址  !! 目的地址 !! 数据长度 !! 数据命令以及数据内容
|-
|0x01表示第一块CPU板，0x02表示第二块CPU板，0x03表示第三块CPU板；<br>0x81表示第一块STM32板，0x82表示第二块STM32电路板，0x83表示第二块STM32电路板，一个字节||0x01表示第一块CPU板，0x02表示第二块CPU板，0x03表示第三块CPU板；<br>0x81表示第一块STM32板，0x82表示第二块STM32电路板，0x83表示第二块STM32电路板；<br>0x80表示目的地址是广播给所有的CPU电路板，0xfe表示目的地址是所有的STM32电路板，0xff表示广播给系统中所有设备，其他地址备用，一个字节长度||数据命令以及数据内容部分数据长度，两个字节，高位在前||见数据命令以及数据内容表，'''是否需要回复'''是数据内容最后一个字节，变长
|}

=====数据命令以及数据内容表=====
{| class="wikitable sortable"
|-
! 命令序号   !! 命令内容 !! 是否需要回复!! 备注
|-
|1，86面板主动查询风控盒状态||空||0表示无需返回，1表示需要返回||
|-
|2，风控盒应答86面板主动查询||返回7个GPIO状态、ADC数据和重启标识位（1byte, 重启置1，读取后置0）||0表示无需返回||
|-
|3，86面板设置服务呼叫||发送1个GPIO状态||0表示无需返回，1表示需要返回||
|-
|4，风控盒应答86面板设置服务呼叫||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|5，86面板设置风量||发送加减两个GPIO状态和ADC值||0表示无需返回，1表示需要返回||
|-
|6，风控盒应答86面板设置风量||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|7，86面板设置音量||发送音量设置四个GPIO状态||0表示无需返回，1表示需要返回||
|-
|8，风控盒应答86面板设置音量||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|9，86面板读取风控盒硬件版本号||无||0表示无需返回，1表示需要返回||
|-
|10，风控盒回复硬件版本号||版本号以\0结束||0表示无需返回||
|-
|11，86面板读取STM32软件版本号||无||0表示无需返回，1表示需要返回||
|-
|12，风控盒回复软件版本号||版本号以\0结束||0表示无需返回||
|-
|13，86面板设置风量（PWM控制）||发送PWM正占空比值（整数形式），两个字节||0表示无需返回，1表示需要返回||
|-
|14，风控盒应答86面板设置风量（PWM控制）||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|15，86面板查询风量PWM值||无||0表示无需返回，1表示需要返回||
|-
|16，风控盒应答86面板查询风量PWM值||返回PWM正占空比值（整数形式），两个字节||0表示无需返回||
|-
|}

=====GPIO状态表（6个字节）=====
{| class="wikitable sortable"
|-
! 字节序号!! 说明
|-
|1||GPIO编号（1~7），1：服务呼叫，2：风量加，3：风量减，4-7：音量设置1-4
|-
|2||GPIO状态，1：ON，0：OFF
|-
|3||GPIO ON的时间，高位（毫秒）
|-
|4||GPIO ON的时间，高位（毫秒）
|-
|5||GPIO ON的时间，低位（毫秒）
|-
|6||GPIO ON的时间，低位（毫秒）

|}

=====风控盒返回状态帧内容说明（32字节）=====

{| class="wikitable sortable"
|-
! 字节 !! 说明
|-
|1-4|| 服务呼叫GPIO状态
|-
|5-8|| 风量加GPIO状态
|-
|9-12|| 风量减GPIO状态
|-
|13-28|| 音量设置4个GPIO状态
|-
|29-32|| ADC（高位在前）
|}