很多开发爱好者在应用启明云端的WT516P6Core自定义离线语音模块时,遇到最多的就是串口问题;接好线没反应,串口数据没有等等 ,这里为大家整理了一份串口协议使用说明文档供大家参考!
离线语音-支持中英文
另外一个问题就是如何自定义语音指令!目前启明云端是支持在线自定义语音指令编译,入口查看:8ms平台选择云知声为入口
启明云端的视频
1、模块串口协议说明
云之声 SDK 有官方默认的串口协议提供给用户使用,同时用户也可以在云知
声平台上自定义串口协议,从而实现与其他 MCU 之间的串口通信。两种方式的
实现都需要在云知声平台上定义好语音指令后,下载官方 SDK。
2、官方串口协议
云之声提供了一套完整的串口通信协议,用户可以通过修改 SDK 中的设置来
使用这一套串口协议,模块每响应一次语音指令,串口就会输出一次数据。但是
从云知声上下载下来的 SDK 中的固件是默认关闭串口协议功能的,所以需要修改
设置并重新编译。
2.1、使能串口协议
在 SDK 中有一个 user_config.h 的文件,在该文件中我们可以选择一些官方
的 demo,或者使能串口协议。具体路径为 unione_lite_app_hb_m\user\inc\
主要需要修改的地方有两个,一个是 USE_UNIONE_PROTOCOL,该宏定义默
认是 0,需要把它改成 1。第二个地方是 USER_RUN_DEMO,该宏定义默认是 1,
默认是运行 GPIO demo,一般不会使用到,需要把它改成 0。修改完成后重新编
译即可使配置生效。具体如图 1、图 2 所示。
2.2、串口协议解析
官方的串口协议是一套完整的协议,包括帧头、帧尾以及 CRC 校验等等,详
细的说明可以查看官方的串口协议说明文档,本文档只针对协议帧进行说明。
协议帧结构包括 8 部分。
1 、帧头 uArTcP(固定 6byte)
2 、模块串口数据发送次数 seq(1byte 递增)
3 、ctrl(1byte)
4 、cmd(2byte)
5 、整包数据校验 crc16(2byte)
6、 payload 长度 len(2byte)
7、 len 的 crc 校验 cs(2byte)
8 、离线语音指令 payload(Nbyte)
具体如图 3、图 4 所示。
3、自定义串口协议
除了使用官方的串口协议,用户也可以在云之声平台上自定义串口协议,在
定义离线语音指令的过程中,即可完成这一操作。与官方串口指令不一样的地方
是,每一条语音指令都需要主动配置串口数据,不然不会输出数据。
3.1、配置串口
在 Pin 脚设置中,把 GPIO_A6 设置为 UART_RX,GPIO_A7 设置为 UART_TX,
波特率、数据位等可以按实际需要设置。设置完成后才可以自定义串口协议。具
体如图 5 所示。
3.2、定义串口协议
在配置好离线语音指令后,选择控制详情,对需要输出数据的语音指令点击
添加控制,点击后会弹出一个窗口,控制类型选择 UART1_TX,动作选择发送,
参数填入需要输出的数据,保存后即可生效。SDK 发布成功后下载烧录,即可正
产运行。具体如图 6、图 7 所示。
转载:https://blog.csdn.net/ami82/article/details/112175638