当前位置:   article > 正文

STM32F407+蓝牙HC-05+手机蓝牙助手_hc蓝牙助手

hc蓝牙助手

突然想试试怎么玩蓝牙模块,本文演示工程较为简单,最后结果为通过手机蓝牙助手控制单片机上小灯的亮灭。

用到的软件:STM32CubeMX、Keil、串口调试助手XCOM 、蓝牙调试宝(手机蓝牙调试助手)

用到的硬件:32单片机、HC-05蓝牙模块、USB转TTL模块

本文在了解如何使用STM32CubeMX、Keil的基础上进行。

配置蓝牙模块

首先配置蓝牙HC-05。

通过USB转TTL模块(CH340)将HC-05模块与电脑建立连接,是为了初始化配置蓝牙模块。

注意:

只需连接四个引脚

蓝牙  —— TTL(下面一一对应)

VCC —— VCC

GND —— GND

TXD —— RXD

RXD —— TXD

先将USB转TTL模块与蓝牙模块连接好后,按住蓝牙模块上的小按键不动,将USB接口插到电脑上之后再松手,此做法是为了让蓝牙模块上电时以“命令响应模式”连接电脑。

以“命令响应模式”成功上电后,蓝牙模块上的小灯会进入慢闪状态。

然后我们打开串口调试助手XCOM,对蓝牙模块进行配置。

在设备管理器端口处通过拔插USB转TTL模块可以知道要连接的是哪一个端口,然后在XCOM中选择相应串口。向HC-05写AT指令时波特率为38400,停止位1,数据位8,奇偶校验无。配置完成后打开串口。(左下角默认勾选“发送新行”)

AT指令
指令响应注释
AT+ORGLOK恢复默认状态
AT+RESETOK模块复位
AT+ADDR?

+ADDR:Param 

OK

获得蓝牙模块地址
AT+VERSION?

+VSRSION:Param

OK

获得软件版本号
AT+ROLE=ParamOK

Param参数取值如下:

0-从角色;1-主角色;

2-回环角色;默认值:0

AT+CMODE=1OK蓝牙连接模式为任意地址连接模式,设置后该模块可以被任意蓝牙设备连接
AT+NAME=ParamOK

设置设备名称 

Parm:想要设置的名字

AT+NAME?

+NAME:Param 

OK

获取设备名称
AT+PSWD=ParamOK

设置模块密码 :

Parm:想要设置的密码;

默认为“1234”

AT+PSWD?

+PSWD:Param 

OK

获得模块密码

AT+UART=Param1,Param2,Param3

OK

设置串口参数

Param1:波特率 ;

Param2:停止位 ;

Param3:校验位。

注意:

停止位:0 —— 1位

AT+UART?

+UART:Param1,Param2,Param3 

OK

获得串口参数
AT指令错误0、1、2、3指令错误or指令结果为默认值or设备不支持

对HC-05蓝牙模块进行设置:

将此蓝牙模块设置为从模式、连接模式为任意地址连接、自定义名称和密码;

设置串口参数为:

波特率9600,停止位1,校验位0.(即AT+UART=9600,0,0)

到这里蓝牙模块的配置就完成了。

CubeMX+Keil

此处省略CubeMX的基础配置......

开启两个小灯。

配置串口和波特率等参数。

使能中断

添加DMA传输通道

更新代码到Keil

写一段代码......

  1. void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
  2. {
  3. if(huart == &huart3)
  4. {
  5. HAL_UART_Transmit_DMA(&huart3, receiveDate, Size);
  6. if (receiveDate[0] == 0xAA) //验证数据,翻转小灯,发送数据较长
  7. {
  8. if(receiveDate[1] == Size)
  9. {
  10. uint8_t sum = 0;
  11. for (int i = 0; i < Size - 1; i++)
  12. {
  13. sum += receiveDate[i];
  14. }
  15. if (sum == receiveDate[Size - 1])
  16. {
  17. for (int i = 2; i < Size - 1; i += 1)
  18. {
  19. switch (receiveDate[i])
  20. {
  21. case 01 : HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_5); break;
  22. case 02 : HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_6); break;
  23. }
  24. }
  25. }
  26. }
  27. }
  28. HAL_UARTEx_ReceiveToIdle_DMA(&huart3, receiveDate, sizeof(receiveDate));
  29. }
  30. }

此处代码参考b站keysking的蓝牙模块视频,在这不做讲解。

将蓝牙模块于单片机连接,注意RXD——TXD、TXD——RXD,供电。

噢,不要忘记烧代码。

连接手机蓝牙

先将手机蓝牙打开,将手机蓝牙与你命名的蓝牙模块配对(我前面命名的Wcz)

我使用安卓系统手机下载了一个叫“蓝牙调试宝”的软件。

授权进去,可以查找到附近的蓝牙设备

点击连接

根据所写代码发送数据(代码里面加了检验,数据较长)

通过手机发送数据控制小灯亮灭。

这就完成了,通过手机蓝牙助手向蓝牙模块传输数据,来实现对小灯的控制。从这个简单的思路出发,可以完成更多的sao操作,要我们自己去玩代码咯。

最后

想玩玩蓝牙,刚刚学会,写下来,仅以此博客来记录一下我的学习。也希望能帮到你。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/662095
推荐阅读
相关标签
  

闽ICP备14008679号