本帖最后由 elliottzheng 于 2024-12-1 20:42 编辑
本帖最后由 elliottzheng 于 2024-12-1 20:28 编辑
本帖最后由 elliottzheng 于 2024-12-1 20:26 编辑
基础环境配置及点灯
我参考的教程是 【蓝牙5.2 PB-03F教程】二次开发环境搭建
首先准备一条microusb数据线,PB-03F开发板,然后软件的话主要是SDK源码以及烧录工具
(教程里的图跟给的链接也不匹配,我找了半天在哪里下载)
在这里可以找到, 蓝牙模组之PB系列专题
原来是这俩
配置好KEIL 5,这里不再赘述。(虽然这也是我第一次用KEIL, 之前都是用Arduino, 折腾了老半天哈哈。)打开SDK文件夹里example/peripheral/gpio/gpio.uvprojx
点击魔法棒进行配置
需要把CFG_SLEEP_MODE=PWR_MODE_SLEEP 改成 CFG_SLEEP_MODE=PWR_MODE_NO_SLEEP
不然说会休眠
然后打开app/gpio_demo.c
找到函数把Key_Demo_Init函数直接删掉(可以备份一下),改成下面这样,不要复制原教程的代码
void Key_Demo_Init(uint8 task_id)
{
key_TaskID = task_id;// 任务id,先暂时不用管。
// 此写函数默认会调用hal_gpio_pin_init(pin,GPIO_OUTPUT);
hal_gpio_write(GPIO_P18,HAL_HIGH_IDLE); // GPIO18 输出高电平,点亮LED
}
然后直接编译。
需要注意的是,这里不能用keil compiler 6,只能用keil compiler 5,随之而来的也需要使用CMSIS 5.X版本
先看看编译出来的bin在哪里,在项目的bin目录下,有个hex文件。这个路径得记好
生成bin之后要准备开始烧写到开发板上了,烧写之前要确认CH340的驱动已经装上了,我在笔记本电脑上装CH340驱动装了半天也没装上,都开始怀疑数据线是不是有问题了,不得已换到之前开发ESP8266已经装过驱动的台式机上了,这回终于连上了,如下图所示
设备管理器里有串口了,然后打开烧写工具看一下,选择COM4,按一下板子上的reset,发现是有输出的,不过
还在奇怪为什么输出不一样,注意根据教程切换波特率到UXTDWU才会跟出现跟教程一样的输出
进入烧写模式,长按reset,其实还挺久的吧,不止2s,等到log当中输出cmd>>即可
首先点击erase进行擦除
然后在hex merge选项卡,app中选择之前编译出来的hex文件,点击write烧写完成
烧写完成
按一下板子上的reset,灯亮了,手机拍不出来这个蓝色灯的细节,确实很好看很精致。稍微有一点失望就是这个demo居然是直接亮灯哈哈,我还以为蓝牙开发板起码得蓝牙操控亮灯吧。
后面准备拿这玩意儿搞个蓝牙遥控定时浇花,放在阳台上正好。
AT固件烧写及AT指令测试
参考教程【蓝牙5.2 PB-03F教程】蓝牙基础指令的使用
要测试AT指令,首先要刷入AT固件,首先下载AT固件,我下载的是V2.0.5版本
然后打开烧写工具,切换到hex选项卡
然后双击箭头处,选择下载下来的hexf文件
依旧是长按reset 2s进入烧写模式,首先erase,然后write
等到出现Write register successfully就成功了。
这时我们断开烧写软件的串口,打开安信可串口调试助手,波特率115200 连接到串口,然后按一下reset
就会看到最左边一列的输出,ready表示可以开始接收AT指令了。
我们首先使用AT指令查看当前蓝牙连接状况
(AT指令需要注意勾选发送新行)
输入 AT+BLESTATE?
得到如下输出
BLESTATE:0 说明目前蓝牙尚未连接
这就是一个简单查询蓝牙连接状态的AT指令,之后我们就可以通过AT指令来操控开发板。
更多AT指令相关内容请参考 【蓝牙5.2 PB-03F教程】蓝牙基础指令的使用
还有一件事:第一次直观认识到BLE的功耗,PB-O3F功耗也太低了,我在测试AT指令的时候,蓝牙明显是开着的,板子是插在我的USB电流计上的,根本测不出电流和耗电量,应该比10mA还小,插了很久也电量也没有变化