文章目录
- 1. 淘宝上两种开发板,有一种的蓝牙功能不正常
- 2. 蓝牙音频测试
- 2.1 《config.h》和《Boombox.setting》两个配置以哪个为准
- 2.2 codeblocks更换链接库
- 2.2.1 这样进入build options是错的
- 2.2.2 build options正确打开方式
- 2.3.编译工程,下载运行
- 2.3.1 上电运行
- 3.源码参考
AB5301A这个MCU在2021年芯片价格最高光时刻,售价是4.2元。对应的资源如下:
可谓性价比非常高,就算去掉主打的蓝牙功能,当作一个普通的MCU,性价比都是很高的。
废话少说,直入正题。
1. 淘宝上两种开发板,有一种的蓝牙功能不正常
我买了两种开发板:
1.绿板:
2.蓝板:
绿板因为价格才36元,一次买了3块,然后根据大佬谷动谷力的教程《基于RT-Thread 中科蓝讯AB32VG1 BLE开发例程讲解》测试了BLE功能,换了2块板都是手机连不上蓝牙,反复折腾都是不行。赶紧在睿赛德科技官方店买了蓝板,一试就行。不过如教程所说,时不时出现 timer stack overflow 的错误,就放弃了rt-thread,转向官方原生的《SDK_AB53XX_V061》。这个SDK的蓝牙音频和BLE功能都可以正常使用,目前为止测试很稳定。
2. 蓝牙音频测试
《SDK_AB53XX_V061》提供了4种开发方案:
1.earphone --耳机方案
2.karaok – 卡拉OK方案
3.LCD – 带点阵LCD显示方案
4.standard – 标准方案
我们当然是从标准方案入手。需要改动的C文件集中在一个《port》的文件夹:
其他的基本可以通过配置文件《config.h》来配置。蓝牙功能测试几乎不用修改源码,只要修改配置文件就可以了。
下面是关于蓝牙部分的配置:
另外还有烧录时的配置文件《app\projects\standard\Output\bin\Settings\Boombox.setting》,详细参考官方文档《AB535X 开发手册(配置说明).pdf》。这里做简单说明。
Boombox.setting是在烧录工具中打开编辑:
打开后:
我们可以看到,《config.h》和《Boombox.setting》很多配置是重复的,不知道以哪个为准。因为我也是刚接触,也没有找代理商咨询,全靠网络公开的资料和测试。
2.1 《config.h》和《Boombox.setting》两个配置以哪个为准
《config.h》文件负责配置编译条件,决定把哪些源码包含进来编译。而程序上电运行时,会将配置内容《Boombox.setting》读入结构体 xcfg_cb,然后在具体功能运行之前判断是否要执行。
下面用一个真实的程序片段来说明:
void bsp_sys_init(void)
{
if (!xcfg_init(&xcfg_cb, sizeof(xcfg_cb))) { //从 Boombox.setting 获取配置参数
printf("xcfg init error\n");
}
......
#if CHARGE_EN // 由《config.h》 中的内容决定
if (xcfg_cb.charge_en) { // 由《Boombox.setting》 中的内容决定
charge_init();
}
#endif // CHARGE_EN
......
}
从第7行知道,首先必须在《config.h》打开宏定义,使能编译条件:
#define CHARGE_EN 1 //是否打开充电功能
这样才可能把第8-10行代码进行编译。
而像上面蓝牙名称的配置,不属于编译条件,此时以《Boombox.setting》为准。其他具体情况,具体分析。
2.2 codeblocks更换链接库
2.2.1 这样进入build options是错的
2.2.2 build options正确打开方式
2.3.编译工程,下载运行
按照目前网络公开的源码,我做了一些改动:
https://gitee.com/huangweide001/ab32-vg_-sdk_cbp
我的工程中使用了BLE功能,需要把链接库libbtstack.a替换为libbtstack_dm.a。如果仅仅是蓝牙音频,则不需要。详情参考官方文档《AB53XX_BLE开发说明.pdf》。
编译成功后,烧录文件是《app\projects\standard\Output\bin\app.dcf》,下载时选择《Boombox》,如下图:
2.3.1 上电运行
如果有插入TF卡,且卡内有mp3文件,将进入sd卡播放模式,播放英文提示“SD card now”,紧接着自动播放mp3。此时,如果要进入蓝牙音频模式,需要KEY_MODE命令。按键和红外都可以。(移植自己的按键板和红外遥控参考文章:AB32VG1:SDK_AB53XX_V061(2)app.cbp工程源码阅读笔记(ADC按键和红外遥控器移植))
如果没有插入TF卡,将进入蓝牙音频模式,播放英文提示“bluetooth now”,等到连接音源。
3.源码参考
SDK_AB53XX_V061源码:
链接:https://pan.baidu.com/s/1TbW_G_JFPUwNt2IdyIUCiA?pwd=1vej
提取码:1vej