【AB32VG1开发】基于RT-Thread 中科蓝讯AB32VG1 BLE开发例程讲解
中科蓝讯最近出的SDK V1.1.0,支持了BLE开发,目前官方还没有正式文档,我来摸索一下吧
- 安装最近SDK
操作步骤详细请参阅: 基于RT-Thread的AB32VG1开发环境搭建
![](http://bbs.sunsili.com/forum.php?mod=image&aid=521&size=300x300&key=7af9d85bab6d538c&nocache=yes&type=fixnone) 选择中科蓝讯AB32VG1开发板最新SDK 1.1.0安装
- 建RT-Thread工程
操作步骤详细请参阅: 基于RT-Thread的AB32VG1开发环境搭建 注意选择最新SDK 1.1.0
![](http://bbs.sunsili.com/forum.php?mod=image&aid=522&size=300x300&key=345c2ebe122df695&nocache=yes&type=fixnone)
- 配置工程
操作步骤详细请参阅: 基于RT-Thread的AB32VG1开发环境搭建 配置详情如下:
![](http://bbs.sunsili.com/forum.php?mod=image&aid=523&size=300x300&key=9af688a7ea698799&nocache=yes&type=fixnone) 开启: 宏: [SOC_AB32VG1] 宏: [PKG_USING_BLUETRUM_NIMBLE] 宏:
[BSP_USING_TIM](这后面加的,因为出现这个了定时报告数据时运行错误:(rt_object_get_type(&timer->parent)
== RT_Object_Class_Timer) assertion failed at function:rt_timer_stop,
line number:502 )我以为加上TIMER模块,就加了,但是还是没解决。
![](http://bbs.sunsili.com/forum.php?mod=image&aid=524&size=300x300&key=b8a142b085e1898f&nocache=yes&type=fixnone) 配置后,保存会出现错误:local variable 'get_git_root' referenced before assignment Operation failed.这里不管它,编译时看看具体是哪里同, 我们再修改。
![](http://bbs.sunsili.com/forum.php?mod=image&aid=529&size=300x300&key=b45043fed531dfd4&nocache=yes&type=fixnone)
- 修改代码
首先熟悉一下BLE_SDK代码目录:
![](data:image/png;base64,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)
修改mac_addr 工程目录下: packages\bluetrum_sdk-latest\bluetrum_nimble\porting\npl\rtthread\src\ble_platform.c
![](http://bbs.sunsili.com/forum.php?mod=image&aid=525&size=300x300&key=013826a096e7466e&nocache=yes&type=fixnone) 注意:mac_addr是6bytes, 代码里只写了5个数据,这是疏漏还是有意为之
修改BLE_name(名字) 工程目录下: \packages\bluetrum_sdk-latest\bluetrum_nimble\apps\blehr\src\blehr.c
![](http://bbs.sunsili.com/forum.php?mod=image&aid=526&size=300x300&key=f9b5b6a765675112&nocache=yes&type=fixnone) 注意:不能是中文,中文会找不到设备
修改服务及设备信息:
![](http://bbs.sunsili.com/forum.php?mod=image&aid=527&size=300x300&key=0c26040f22d60996&nocache=yes&type=fixnone) 修改服务属性:
![](http://bbs.sunsili.com/forum.php?mod=image&aid=528&size=300x300&key=1de6de57ec103eb0&nocache=yes&type=fixnone) 这里服务,我们没做修改,保存默认。
- 编译
Ctrl+B 编译工程,会出错: In file included from : E:\RT-ThreadWorkspace\AB32_BLE_Demo\rtconfig_preinc.h:8:9: error: no macro name given in #define directive 8 | #define | ^ In file included from : E:\RT-ThreadWorkspace\AB32_BLE_Demo\rtconfig_preinc.h:8:9: error: no macro name given in #define directive 8 | #define | ^ make: *** [rt-thread/src/subdir.mk:57: rt-thread/src/device.o] Error 1 make: *** Waiting for unfinished jobs.... In file included from : E:\RT-ThreadWorkspace\AB32_BLE_Demo\rtconfig_preinc.h:8:9: error: no macro name given in #define directive 8 | #define | ^ In file included from : E:\RT-ThreadWorkspace\AB32_BLE_Demo\rtconfig_preinc.h:8:9: error: no macro name given in #define directive 8 | #define | ^ make: *** [rt-thread/src/subdir.mk:57: rt-thread/src/clock.o] Error 1 make: *** [rt-thread/src/subdir.mk:57: rt-thread/src/components.o] Error 1 make: *** [rt-thread/src/subdir.mk:57: rt-thread/src/idle.o] Error 1 "make -j4 all2" terminated with exit code 2. Build might be incomplete.
14:29:13 Build Failed. 9 errors, 0 warnings. (took 1s.464ms)
![](http://bbs.sunsili.com/forum.php?mod=image&aid=530&size=300x300&key=71a719bb1ecd34e8&nocache=yes&type=fixnone) 双击出错提示,定位到出错的地方,#define后面是空的,删除这个#define即可 重新编译
![](http://bbs.sunsili.com/forum.php?mod=image&aid=531&size=300x300&key=b3449d973affe7b6&nocache=yes&type=fixnone) - 调试
将编译好的,目标文件:rtthread.elf,烧录到中科蓝讯AB32VG1 BLE开发板,操作步骤详细请参阅: 基于RT-Thread的AB32VG1开发环境搭建
![](http://bbs.sunsili.com/forum.php?mod=image&aid=532&size=300x300&key=6d5c751a09ba7840&nocache=yes&type=fixnone) 手机打开蓝牙
![](http://bbs.sunsili.com/forum.php?mod=image&aid=533&size=300x300&key=e08b881fcc793477&nocache=yes&type=fixnone) 手机打开蓝牙BLE调试助手
![](http://bbs.sunsili.com/forum.php?mod=image&aid=534&size=300x300&key=757fa52bcd031682&nocache=yes&type=fixnone) 连接BLE设备
![](http://bbs.sunsili.com/forum.php?mod=image&aid=535&size=300x300&key=e35a58f07b482e8e&nocache=yes&type=fixnone) 设备相关数据服务列表:
![](http://bbs.sunsili.com/forum.php?mod=image&aid=537&size=300x300&key=005267399e951eda&nocache=yes&type=fixnone)
获取BLE设备数据--制造商信息
![](http://bbs.sunsili.com/forum.php?mod=image&aid=538&size=300x300&key=9577461b046347ef&nocache=yes&type=fixnone)
![](http://bbs.sunsili.com/forum.php?mod=image&aid=536&size=300x300&key=22508f3bb8dc8c27&nocache=yes&type=fixnone) 获取BLE设备数据--设备型号信息,点"读取"即可
![](http://bbs.sunsili.com/forum.php?mod=image&aid=539&size=300x300&key=c574a1c715f259e4&nocache=yes&type=fixnone) 读取心率相关数据
![](http://bbs.sunsili.com/forum.php?mod=image&aid=541&size=300x300&key=0c65431be3f0d09b&nocache=yes&type=fixnone) 心率数据自动数据通知上报
![](http://bbs.sunsili.com/forum.php?mod=image&aid=542&size=300x300&key=735909330367bf79&nocache=yes&type=fixnone) 这个数据点代码有BUG,不定什么时候,报错,每次错误还不一样, 这个还得官方分析一下.
![](http://bbs.sunsili.com/forum.php?mod=image&aid=543&size=300x300&key=87f2ac3094521bd6&nocache=yes&type=fixnone) ![](http://bbs.sunsili.com/forum.php?mod=image&aid=544&size=300x300&key=98915bf6161f2ffc&nocache=yes&type=fixnone)
- 遗留问题
1) 定时上报数据点代码有BUG,不定什么时候,报错,每次错误还不一样, 这个还得官方分析一下. 2)现在只有Read(BLE上报数据)功能,没有write(APP->BLE下达数据)功能,这个后面移植一下 3)连接现有通用平台功能, 如微信\涂鸦\天猫精灵.....等等
- 总结
用RT-Thread基于中科蓝讯AB32VG1 BLE开发快捷方便.做一个只要官方有的驱动及软件,相关方便快捷,没有话自己移植的话,还是比较复杂.
更多精彩,欢迎关注微信公众号: ![](http://bbs.sunsili.com/data/attachment/forum/202112/06/222220dcqqffc54fyzkqwt.png) |