BLE-LED
前言: 使用蓝牙控制板端的LED灯,可以根据占空比控制灯的闪烁规律。
一、测试工程代码分析及配置
1、首先,打开工程代码D:\CH32V20xEVT\EVT\EXAM\BLE\Peripheral\Peripheral.wvproj。如图1所示界面。
图1
2、点击HAL_Init()函数进入,如图2所示,并不包含LED和KEY的硬件初始化。
图2
3、如何加入KEY和LED的代码,打开Project下的Properties界面,点击C/C++ General下的Paths and Symbols,右面Source Location打开Peripheral/HAL,里面是过滤掉的模块,如图3所示。
图3
4、我们将LED和KEY的代码不进行过滤即可。具体如下图4所示步骤即可去除过滤,加入其功能代码。
图4
5、从HAL_Init()函数看,LED并没有加入编译,如图5所示步骤加入Symbols,应用并关闭后如图6所示,HAL_LedInit()参与了编译,重新编译,下载程序查看现象。
图5
图6
二、测试工程代码修改
1、接下来我们需要使用手机蓝牙调试助手发送控制指令给板子,来控制LED灯的闪烁规律,来看代码LED的,我们就按照原有代码进行接硬件led,如图7所示LED的定义初始化。
图7
2、找到蓝牙接收处理函数,增加如图8所示代码。
图8
3、我们去看一下HalLedSet这个函数,在LED.c函数中,如图9所示。
图9
4、我们再接着看HalLedBlink函数,如图10所示。
图10
三、编译测试
1、编译运行下载到板端,用杜邦线将PB15与LED1连接起来,现象说明为:
蓝牙调试助手发送控制 |
板端控制代码 |
说明 |
---|
0x01 |
HalLedSet(HAL_LED_1,HAL_LED_MODE_BLINK); |
闪烁一次,1秒亮5ms |
0x02 |
HalLedSet(HAL_LED_1,HAL_LED_MODE_FLASH); |
闪烁50次,1秒亮5ms |
0x03 |
HalLedSet(HAL_LED_1,HAL_LED_MODE_TOGGLE); |
每发一次0x03,led进行toggle |
这个LED代码同时可以控制4个LED灯,大家可自行测试。
2、手机下载蓝牙调试助手,打开软件搜索设备广播出来的名称,我给修改了,如图11所示,名字修改如图12所示。
图11
图12
3、连接Hett Test,找到如图13所示,点击进入发送指令。
图13
图14
四、总结
蓝牙测试非常有意思,大家可以研究一下蓝牙相关代码,进行修改测试。
|