第三弹 蓝牙模块与蓝牙调试器的使用
1、大家好,利用周末开始,蓝牙模块就是用大Z老师推荐的HC-06,这个模块很好用,但一定要注意设置串口的波特率是9600bit/s,我第一次用波特率没有改,发送到蓝牙调试器上的Hello World全是问号,大家不要犯这个错误
2、就介绍一下蓝牙接受手机端发送的指令那个接收函数,这个函数固件库里面就有,但是我们需要看懂它里面的参数,方便我们在程序中的使用。第一个参数是&huart1,是串口的地址,第二个参数是&flag,这个参数最重要,它是我们需要发送字符的地址,我们可以令地址flag==xx字符,eg,令flag==1。这个flag相当于个标志位,我的嵌入式老师在上课时经常叮嘱要一定会用,在这里分享给大家。第三个参数是字长,在这里可以用求字长的函数sizeof,也可以自己手动数,在这里flag就是一位。也可以用下面贴的函数,我也是现学现卖,O(∩_∩)O哈哈~。
/* USER CODE BEGIN 2 */
HAL_UART_Receive(&huart1, &flag, sizeof(flag)/sizeof(uint8_t)-1, 0xffff);
/* USER CODE END 2 */
3、演示一个用手机上的蓝牙调试器控制WS2812的程序,顺便介绍一下这个参数
我的颜色顺序是这个,绿红蓝,和英文的首字母是一样的
#define GRB 24
这个控制着灯珠的颜色以及亮灭,这是个人理解,如果介绍的有问题希望大家不吝指教
ws2812_color(0xff, 0x00, 0x00)代表绿色
ws2812_color(0x00, 0xff, 0x00)代表红色
ws2812_color(0x00, 0x00, 0xff)代表蓝色
/* USER CODE BEGIN 3 */
HAL_UART_Receive(&huart1, &flag, 1, 0xffff);
if(flag == 1)//点亮WS2812
{
ws2812_colorWipe(ws2812_color(0x00, 0x00, 0xff), 250);
}
if(flag == 2)//熄灭
{
ws2812_colorWipe(ws2812_color(0x00, 0x00, 0x00), 250);
}
}
/* USER CODE END 3 */
4、蓝牙调试器的使用,在手机应用商店里面搜“蓝牙调试器”,下载完成后
第一步:进入按钮控制界面,
第二步:点击编辑模式
第三步:点击按钮,会出现编辑框,如下图
第四步:编辑框里面数据字节码可以根据自己的需要修改,然后把字节码放到主函数里面, 就可以实现蓝牙控制WS2812,
图一
图二
图三