找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

csr867x入门之串口AT指令协议

2020-5-17 10:43| 发布者: csdn| 查看: 3258| 评论: 0|来自: CSDN

摘要: 功能简介 通过封装串口AT指令,我们可以把8670作为一个蓝牙外设,通过串口的AT指令协议与外部mcu通讯。 比如当csr8670连接到pc端,再pc端通过串口工具发送指令,芯片内部去解析指令,并执行相应的操作 功能

功能简介

通过封装串口AT指令,我们可以把8670作为一个蓝牙外设,通过串口的AT指令协议与外部mcu通讯。

比如当csr8670连接到pc端,再pc端通过串口工具发送指令,芯片内部去解析指令,并执行相应的操作

功能实现

8670内置有一套字符串解析工具,通过编写.parse文件,当项目编译时,会生成对应的.c和.h文件。首先我门可以参考hfp_parse.parse进行编写sink_parse.parse

如上图所示,第一部分为指令,第二部分为指令解析之后对应的回调函数,当指令后面跟有参数时,需要按照第三部的格式,可以对指令规定一个固定的结尾,如”\r\n”或”\r”等。

编写好.parse之后,添加到工程中进行编译,此时会报错,原因是找不到回调函数的实体,这个时候只需要在sink_parse.h中复制函数定义(注:函数定义会根据.parse自动生成),实现函数实体即可

以AT+GVER指令为例,void handleGetVersion(Task ),回调函数实现示例如下:

void handleGetVersion(Task t)
{
    UartSendStr("+VER:");
    UartSendStr("0.0.2");
    UartSendStr("\r\n");
}

功能调试

将编译好的固件烧到板子中,板子连接到pc,用pc上的串口工具发送AT+GVER\r\n, 该指令会进入我们上篇博客所述的app_uart_handler()串口数据分发函数,后进入UartparseData()进行指令解析,最终调用上面实现的handleGetVersion()结果如下图所示:

我已经封装了一部分的AT指令,基本上包含了所有蓝牙功能的使用,具体可以参考我的《AT指令集.docx》。

上面我只贴出了部分代码,详细源码及相关的工具资料等,github链接中下载:https://github.com/layne11/csr8670_adk4_1



来源:https://blog.csdn.net/ylangeia/article/details/103313686
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-20 17:28 , Processed in 0.140554 second(s), 32 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部