AT32WB415 AN0077增加可获取蓝牙MAC地址的AT指令

前言

雅特力AT32WB415是一颗集成了蓝牙模组的MCU,支持蓝牙5.0,包括支持拓展数据包,在保证数据传输效率的同时,又能满足对算法和外设资源有要求的应用,雅特力官网有支持AT指令同时也可支持大数据传输的sample code ,作为一份纯粹的参考代码还是有意义的。
雅特力官网下载连接 :

下面将介绍怎么新增自定义的AT指令,以及怎么获取蓝牙MAC地址

示例教程

1、在用户AT指令定义的枚举  at_cmd_tag 中新增一条指令名称,名称可自定义,例如博主使用的  AT_RESULT_BLE_MAC 
enum at_cmd_tag
{AT_RESULT_AT, // 0AT_RESULT_BAUD1,AT_RESULT_BAUD2,AT_RESULT_BAUD3,……AT_RESULT_TPMODE0,AT_RESULT_TPMODE1,AT_RESULT_BLE_MAC,AT_RESULT_MAX,
};
2、然后在AT指令集的结构体  at_prefix_req 中编辑新增的指令对应的指令内容, 例如博主使用的 “ AT+BLEMAC \r\n” 
static const at_prefix_t at_prefix_req[] = {DECLARE_PREFIX("AT\r\n", AT_RESULT_AT),DECLARE_PREFIX("AT+BAUDS1\r\n", AT_RESULT_BAUDS1),DECLARE_PREFIX("AT+BAUDS2\r\n", AT_RESULT_BAUDS2),DECLARE_PREFIX("AT+BAUDS3\r\n", AT_RESULT_BAUDS3),……DECLARE_PREFIX("AT+TPMODE0\r\n", AT_RESULT_TPMODE0),DECLARE_PREFIX("AT+TPMODE1\r\n", AT_RESULT_TPMODE1),DECLARE_PREFIX("AT+BLEMAC\r\n", AT_RESULT_BLE_MAC),};
3、在 app.c 中添加头文件 “ #include "co_utils.h"”,因为无论是软件MAC或flash中的MAC,最终MAC地址是会缓存在  co_default_bdaddr 中, co_default_bdaddr 的外部定义是放在  "co_utils.h" 中。
4、 在AT指令处理函数  app_user_entry 中新增 AT_RESULT_BLE_MAC 的处理代码,将MAC复制到临时数组并通过串口回复给 MCU 
case AT_RESULT_BLE_MAC:cpu_delay(15);char buffer_A[6] = {0};strncpy(buffer_A, (char *)&co_default_bdaddr.addr, 6);UART_SEND_DATA("%s\r\n", buffer_A);break;
5、番外:
修改蓝牙名称的指令无法生效,增加广播关闭和打开的处理。
                    if (ke_state_get(TASK_APP) == APPM_ADVERTISING)
                    {
                        appm_stop_advertising();
                    }
                case AT_RESULT_NAME:case AT_RESULT_NAMES:cpu_delay(15);memset(Sram_Device_name, 0, 20);memcpy(APP_DFLT_DEVICE_NAME, AT_cmd_buf + prefix_cmd->prefix_len, (AT_cmd_len - prefix_cmd->prefix_len));appm_set_dev_name(APP_DFLT_DEVICE_NAME, (AT_cmd_len - prefix_cmd->prefix_len));AT_cmd_len = 0;if (prefix_cmd->code == AT_RESULT_NAME){save_parameter_to_BK3432_USED_FLASH_AREA(TAG_NAME, (uint8_t *)APP_DFLT_DEVICE_NAME);}{char buffer_A[64] = {0};#ifdef used_BK3432_MCUUART_SEND_DATA("@");
#endifUART_SEND_DATA("%s", get_at_rsp(rsp_code));strncpy(buffer_A, (char *)(AT_cmd_buf + prefix_cmd->prefix_len), (without_prefix_len - 2));UART_SEND_DATA("%s\r\n", buffer_A);}if (ke_state_get(TASK_APP) == APPM_ADVERTISING){appm_stop_advertising();}UART_PRINTF("name : %s\r\n",APP_DFLT_DEVICE_NAME);break;

结语

欢迎大家指正讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/834885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【吃透Java手写】3-SpringBoot-简易版-源码解析

【吃透Java手写】SpringBoot-简易版-源码解析 1 SpringbootDemo2 准备工作2.1 Springboot-my2.1.1 依赖2.1.2 SpringBootApplication2.1.3 SJBSpringApplication2.1.3.1 run方法 2.2 Springboot-user2.2.1 依赖2.2.2 UserController2.2.3 UserApplication 2.3 分析run方法的逻辑…

Vue+OpenLayers7入门到实战:OpenLayers实现鼠标拖拽方式绘制矩形(正方形和长方形)

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上实现鼠标拖拽方式绘制矩形(拖拽方式长方形和正方形)。 OpenLayers本身是可以通过鼠标点击多个点的方式来绘制多边形的,当然也包括长方形和正方形,但是这种多边形绘…

Ollama + Openwebui 本地部署大型模型与交互式可视化聊天

Ollama简介 Ollama是一个创新的平台,它允许用户在本地启动并运行大型语言模型。它提供了一个简单易用的内容生成接口,类似于OpenAI,但无需开发经验即可直接与模型进行交互。Ollama支持热切换模型,为用户提供了灵活性和多样性。 …

港股开启估值修复行情 珠光效果材料龙头大涨25%

进入二季度以来,港股市场持续大涨,仅4月恒生指数就大涨7.4%,5月涨幅继续扩大至12.31%,大幅跑赢全球各主要指数。尤其是随着恒生科技多年以来的估值底部的确认,至此恒生指数、恒生港股通,恒生高股息&#xf…

使用C语言实现杨氏矩阵并找出数字

前言 过了五一假期,咋们经过了一个假期的休息,要继续学习了,不能偷懒哦!! 今天让我们来看看如何在一个杨氏矩阵中找出自己想找到的数字。 首先,我们要了解一下杨氏矩阵到底是什么,如果一个矩阵中…

概念解析 | ROC曲线:评估分类模型

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:ROC曲线的含义和绘制 概念解析 | ROC曲线:评估分类模型 第一部分:通俗解释 在我们的日常生活中,经常会遇到需要做出判断和选择的情况。比如,当你收到一封邮件时…

深度学习(算法工程师)最火的就业方向

自动驾驶与智能交通 自动驾驶是深度学习技术的一个重要应用领域,其目标是实现车辆的自主导航和驾驶。自动驾驶系统需要借助深度学习技术来识别交通信号、行人、车辆等环境信息,并做出相应的决策。因此,自动驾驶与智能交通领域的就业方向包括…

WPS二次开发系列:一文快速了解WPS SDK功能场景

作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 目录 SDK功能介绍 功能详解: 打开文档…

第十二届蓝桥杯省赛真题 Java B 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: ASC试题 B : 卡片试题 C: 直线试题 D: 货物摆放试题 E: 路径试题 F: 时间显示试题 G: 最少砝码试题 H: 杨辉三角形试题 I: 双向排序试题 J: 括号序列 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,…

echarts指标盘属性概括

echarts指标盘属性概括 代码 有模拟数据可以直接使用const options {animation: true,title: {top: "35%",left: "center",// text: "单元测试覆盖度", // 主标题itemGap: 15,textStyle: {// 主标题样式color: "#666666",fontSize:…

YOLOv5改进 | 独家创新篇 | 利用MobileNetV4的UIB模块二次创新C3(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用MobileNetV4的UIB模块二次创新C3,其中UIB模块来自2024.5月发布的MobileNetV4网络,其是一种高度优化的神经网络架构,专为移动设备设计。它最新的改动总结主要有两点,采用了通用反向瓶…

微同城小程序源码 轻松制作本地生活活动赚钱 带完整的安装代码包以及搭建教程

近年来,本地生活服务市场蓬勃发展,人们对于周边的生活信息、活动资讯等需求日益增长。然而,传统的信息发布方式存在诸多不便,如信息更新不及时、传播范围有限等。微同城小程序源码应运而生。它利用小程序的便捷性和普及性&#xf…

海睿思受邀参加 “走进中节能”研习交流,探索新能源数据治理的创新路径

近日,OceanMind海睿思参加由江苏省企业信息化协会(以下简称“苏信会”)主办的“走进中节能太阳能科技(镇江)有限公司”研习交流活动。 海睿思与苏美达、远东控股、隆基乐叶、固德威、上能电气等40多位来自制造业领域的…

04-25 周四 FastBuild重构实践-TLS、全局捕获异常、一键配置

04-25 周四 FastBuild重构实践 时间版本修改人描述04-25V0.1宋全恒新建文档2024年5月6日14:33:16V1.0宋全恒完成文档撰写 简介 由于 04-22 周日 阿里云-瑶光上部署FastBuild过程(配置TLS、自定义辅助命令)描述了重新部署一个FastBuild实例的过程,通过阅读这个&…

怎么设置付费视频课程_在线教育知识付费系统

在信息爆炸的时代,我们每天都被海量的信息包围。然而,真正有价值、能够让我们快速提升的知识,往往隐藏在这些信息的深海之中。今天,我要为大家介绍的,就是这样一份珍贵的宝藏——我们的付费视频课程。 工具/原料 微信…

手把手教你微调Stable Diffusion

温馨提示 关于本文: 本文你可以学习到完整的不使用webui借助lora和dreambooth微调Stable Diffusion的全过程。 手把手教你微调Stable Diffusion生成优弧,但是半失败版😂 关于训练: 单卡32GV100进行的微调,因为一些…

【leetcode】数学位数题总结

涉及题型:两数相加问题、大数溢出等 相加问题 根据题意定义rs的数据结构判断是存储方式是正序还是逆序,如果是正序需要反转 比如 123 12 135是正序, 321 21 135是逆序反转的方式:对于可以从后往前遍历的(如字符串…

高效工作之软件系统——数据结构登记表

数据结构模板 开发完软件系统后,往往需要进行一些登记——《软件系统数据结构登记表》 然后软件项目有60个表左右,难道需要手动录入,那肯定不可能 工欲善其事必先利其器!go。。。同事给的模板是下图 效果图 于是想到 之前使用…

【mysql】mysql导入导出数据详解

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

初中都没念完的我,是怎么从IT这行坚持下去的...

大家好,我是一名二线(伪三线,毕竟连续两年二线城市了)的程序员。 现阶段状态在职,28岁,工作了10年左右,码农从事了5年左右,现薪资9k左右。如文章标题所说,初二辍学&…