csr867x入门之串口AT指令协议(三)

目录

功能简介      

功能实现

功能调试


功能简介      

通过封装串口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》。

 

上面我只贴出了部分代码,详细源码及相关的工具资料等,请到我的博客<csr867x入门笔记(序)>最下面的网盘链接或者github链接中下载。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在云巅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值