TB-03 二次开发环境搭建指导及mesh发送和接收函数


前言

本篇博文来介绍一下如何搭建TB-03模组二次开发环境!

一、安装开发工具

1. 官网下载安装包

点击下载安装包
图一

2. 解压下载的好的压缩包

图二
图三

3. 安装开发工具

图四
图五
图六
图七
图八
图九
图十
图十一

二、使用步骤

1. 修改编译路径

由于中文路径容易出问题,这里需要将默认的工具路径修改为英文
图一
图二

2. 打开开发工具并进入SDK

图三
图四
这里注意SDK的路径不要有中文
图五
图六
图七

2. 导入工程

图八
图九
图十
图十一

三、编译文件

1. 编译

图一
图二

2. 成功

图三

四、烧录

参考https://blog.csdn.net/qq_54193285/article/details/136451640?spm=1001.2014.3001.5502此处链接的内容

注意:烧录文件的路径
图一
图二

五、SDK文件架构

图一

  • boot:提供芯片的bootloader,即MCU上电启动或deepsleep唤醒后的汇编处理过程,为后面C语言程序的运行搭建好环境。
  • drivers:提供与 MCU 紧密相关的硬件设置和外设驱动程序,如 clock、flash、i2c、usb、gpio、uart 等。
  • proj:提供 MCU 相关的外设驱动程序,如 flash,i2c,usb,gpio, uart 等。
  • proj_lib:提供 MCU 运⾏所必需的库⽂件,包括 BLE 协议栈、RF 驱动、PM
    驱动等,这部分是以库⽂件形式提供的,⽤⼾⽆法看到源⽂件,如 liblt_8258_mesh.a
    为蓝⽛协议栈的库⽂件,libsig_mesh.a 为 SIG_mesh普通节点的库⽂件,libsig_mesh_LPN.a 为
    SIG_mesh 中的低功耗节点的库⽂件,libsig_mesh_prov.a 为SIG_mesh 中的 provision
    节点的库⽂件。
  • stack:存放 BLE 协议栈相关的头⽂件。源⽂件被编译到库⽂件⾥⾯,对于⽤⼾是不可⻅的。
  • vendor:⽤于存放⽤⼾应⽤层代码。⽬前 vendor ⽬录下有:
    - 8267_master_kma_dongle:上位机测试使⽤,配合 GATT 模式上位机⼯具可以作为⼀个 provisioner
    的⻆⾊,⽤于演⽰和 debug。
    - common:主要包含了 mesh/mesh_lpn/mesh_provision/mesh_switch 等共⽤的模块,例如 SIG
    mesh model 的处理,led 部分,出⼚初始化,测试命令等模块。
    - mesh/mesh_gw_node_homekit/mesh_lpn/mesh_provision/mesh_switch/ spirit_lpn 这⼏个⽂件
    夹的结构⼀样,每个⽂件夹对应⼀个应⽤类型,都包含了 app.c、app.h、app_att.c、app_config.h、
    main.c。app.c/app.h 主要是初始化和底层回调功能;app_att.c 是蓝⽛ att 表的描述以及接⼝函数
    的说明;app_config.h 是定义⼯程中对应的宏和声明;main.c 是主函数和中断函数的⼊⼝。

六、Mesh 接收和发送⾃定义⼴播包

1. ⾃定义⼴播包的发送:

sdk 初始化时调⽤ bls_set_advertise_prepare (app_advertise_prepare_handler) 注册⼴播包发送回调函数,发
⼴播前允许⽤⼾访问和修改⼴播包内容,sdk 默认 10ms 调⽤⼀次⼴播包发送函数。如果⽤⼾想发送⾃定义的
⼴播包,在 gatt_adv_prepare_handler ⾥参照 mesh 可连接⼴播包的发送即可。通过 clock_time_exceed 软
件计时⽅式控制⼴播包间隔,rf_packet_adv_t * p 指向待发送的⼴播包,⽤⼾根据⼴播包格式修改 p 指向的⼴
播包内容(可参考 set_adv_provision()),最后置返回值 ret 为 1 即可,表⽰要发送⼴播包。

2. 接收和过滤可连接⼴播包:

sdk 在 rf rx 中断调⽤ adv_filter_proc() 函数对收到的⼴播包进⾏过滤,函数返回 0 表⽰丢弃收到的⼴播包,返
回 1 表⽰不过滤 (接收并压⼊ blt_rxfifo)。默认情况下,过滤所有可连接⼴播包。如果⽤⼾想接收可连接⼴播包,
打开宏 USER_ADV_FILTER_EN,在 user_adv_filter_proc() 函数⾥对⽤⼾关⼼的⼴播包进⾏判断并返回 1,不
建议所有的可连接⼴播包都返回 1,因为此⽅式不对⼴播包做任何过滤,所有⼴播包都会压到 blt_rxfifo ⾥,包
括周围⾮ mesh 的其他 BLE 产品发出的⼴播包也会被接收进来,我们的接收 buffer 可能会不能存储那么多数
据,导致需要关⼼的 mesh message 丢失,进⽽影响 mesh 的收包效果。
blt_sdk_main_loop () 会检查 blt_rxfifo,如果检测到有数据需要处理,会调⽤ app_event_handle(),⽤⼾在此
回调函数的 if(LL_TYPE_ADV_NONCONN_IND != (pa->event_type & 0x0F)) 分⽀下处理收到的可连接⼴播包
即可。如下图:
图一

总结

到这里我们TB-03F 二次开发环境搭建指导介绍完成了!
以上就是本期分享的内容,更多资料可从安信可官网上获取。

官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值