功能简介通过封装串口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 ),回调函数实现示例如下:
功能调试将编译好的固件烧到板子中,板子连接到pc,用pc上的串口工具发送AT+GVER\r\n, 该指令会进入我们上篇博客所述的app_uart_handler()串口数据分发函数,后进入UartparseData()进行指令解析,最终调用上面实现的handleGetVersion()结果如下图所示: ![]() 我已经封装了一部分的AT指令,基本上包含了所有蓝牙功能的使用,具体可以参考我的《AT指令集.docx》。 上面我只贴出了部分代码,详细源码及相关的工具资料等, 来源:https://blog.csdn.net/ylangeia/article/details/103313686 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
GMT+8, 2025-5-1 00:09 , Processed in 0.380958 second(s), 33 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.