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

这篇具有很好参考价值的文章主要介绍了STM32F407+蓝牙HC-05+手机蓝牙助手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

用到的软件: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接口插到电脑上之后再松手,此做法是为了让蓝牙模块上电时以“命令响应模式”连接电脑。stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

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

stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

stm32f407与hc05通信,软件,stm32,单片机,智能手机

AT指令
指令 响应 注释
AT+ORGL OK 恢复默认状态
AT+RESET OK 模块复位
AT+ADDR?

+ADDR:Param 

OK

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

+VSRSION:Param

OK

获得软件版本号
AT+ROLE=Param OK

Param参数取值如下:

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

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

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

设置设备名称 

Parm:想要设置的名字

AT+NAME?

+NAME:Param 

OK

获取设备名称
AT+PSWD=Param OK

设置模块密码 :

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)

stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

CubeMX+Keil

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

开启两个小灯。

stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

stm32f407与hc05通信,软件,stm32,单片机,智能手机

使能中断

stm32f407与hc05通信,软件,stm32,单片机,智能手机

添加DMA传输通道

stm32f407与hc05通信,软件,stm32,单片机,智能手机

更新代码到Keil

写一段代码......

stm32f407与hc05通信,软件,stm32,单片机,智能手机

void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
	if(huart == &huart3)
		{
			HAL_UART_Transmit_DMA(&huart3, receiveDate, Size);			
			
			if (receiveDate[0] == 0xAA)                 //验证数据,翻转小灯,发送数据较长
			{
				if(receiveDate[1] == Size)
				{
					uint8_t sum = 0;
					for (int i = 0; i < Size - 1; i++)
					{
						sum += receiveDate[i];
					}
					
					if (sum == receiveDate[Size - 1])
					{
						for (int i = 2; i < Size - 1; i += 1)
						{
							switch (receiveDate[i])
							{
								case 01 : HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_5); break;
								case 02 : HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_6); break;
							}
						}
					}
				}
			}
			HAL_UARTEx_ReceiveToIdle_DMA(&huart3, receiveDate, sizeof(receiveDate));
		}
}

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

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

噢,不要忘记烧代码。

连接手机蓝牙

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

stm32f407与hc05通信,软件,stm32,单片机,智能手机stm32f407与hc05通信,软件,stm32,单片机,智能手机stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

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

stm32f407与hc05通信,软件,stm32,单片机,智能手机

点击连接

stm32f407与hc05通信,软件,stm32,单片机,智能手机stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

stm32f407与hc05通信,软件,stm32,单片机,智能手机

stm32f407与hc05通信,软件,stm32,单片机,智能手机

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

最后

想玩玩蓝牙,刚刚学会,写下来,仅以此博客来记录一下我的学习。也希望能帮到你。文章来源地址https://www.toymoban.com/news/detail-785735.html

到了这里,关于STM32F407+蓝牙HC-05+手机蓝牙助手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从STM32F407到AT32F407(一)

    雅特力公司的MCU有着性能超群,价格优越的巨大优势,缺点是相关资料少一些,我们可以充分利用ST的现有资源来开发它。 我用雅特力的STM32F437开发板,使用原子 stm32f407的开发板自带程序,测试串口程序,原设定串口波特率为115200,但是输出乱码,波特率改成230400,串口输

    2024年02月02日
    浏览(50)
  • HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程

    ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩因为之前无论是电赛还是做项目,都用到了蓝牙模块,如:手机和stm32的通信,电赛中的双车通信,还是遥感小车的stm32与stm32的无线通信等等 ⏩本篇文章对HC-05蓝牙模块与手机的通信做一个详

    2024年02月03日
    浏览(54)
  • 初识 STM32和STM32F407简介

    2007 年 6 月,ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制 器芯片:STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣 惊人,一发不可收拾,截止到 2020 年 6 月,STM32 累计出货量超过 45 亿颗。 战舰开发板使用的 STM32F103ZET6

    2023年04月08日
    浏览(64)
  • STM32F407的介绍

    内核 32位 高性能ARM Cortex-M4处理器 时钟: 高达168MHz,实际还可以超频一点点 stm32f407的主频通过PLL倍频后能够达到168MHz,而且芯片内置一个16MHz的晶振和一个32KHz的晶振,可以满足不同功耗的需求。 支持FPU(浮点运算)和DSP指令 144引脚 114个IO口 存储器容量: 1024K FLASH, 192K

    2024年02月10日
    浏览(42)
  • STM32F407的时钟

    时钟源用来为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。它通常由石英 晶体振荡器和与非门组成的正反馈振荡电路组成,其输出送至环形脉冲发生器。 F4开发指南P107 F4开发指南P108 HSI高速内部时钟源 High Speed Internal。RC 振荡器,频率为 16MHz。可以直接作为

    2024年02月10日
    浏览(43)
  • STM32F407——串口通信

    本文将对串口通信的分类和基于 stm32 的串口配置进行介绍,以及如何使用串口调试助手进行串口收发功能的调试,旨在帮助还不会使用 stm32 单片机串口资源进行通信的家人们快速学会如何使用串口来进行通信。 (纯干货、快速上手、零基础也能会!!!) (1)串口,即串

    2023年04月08日
    浏览(40)
  • STM32F407 --USART使用

    目录 1. 串口配置--普通模式 2. 实现数据的传输主函数 1)单引号双引号的应用数组传输 2)将调试信息用串口打印传送到电脑上 1. 串口配置--普通模式 F407使用的M4内核与F103使用的M3内核不一样,导致在使用配置上有区别。需要在F103配置的基础上专门将GPIO的PIN配置成复用功能

    2024年02月16日
    浏览(46)
  • STM32F407的PWM

    泉水 STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。 高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。 通用定时器也能同时产生多达 4路的 PWM 输出 STM32F407 最多可以同时产生 30 路 PWM 输出! 这里我们仅利用 TIM14的 CH1 产生一路 PWM 输出。 如上所

    2024年02月17日
    浏览(38)
  • STM32F407 移植 FreeRTOS

    本实验是基于正点原子 STM32F407ZG 探索者开发板完成的,所以需要一个STM32F407ZG 探索者开发板 用于移植的基础工程(下面会讲) FreeRTOS源码(下面会讲) 本实验所有用到的代码:基于正点原子STM32F407的FreeRTOS移植工程.zip 1.1 移植前准备 1.1.1 基础工程 由于后续需要用到 LED、

    2024年02月08日
    浏览(58)
  • STM32F407添加DSP库

    编译程序出现以下报错 出现 “error: #5: cannot open source input file “arm_const_structs.h”: No such file or directory” 错误的原因是编译器无法找到名为 “arm_const_structs.h” 的头文件。 头文件路径错误 头文件未安装或丢失 编译器配置问题 添加DSP库 添加DSP库可以参考这篇博客: STM32CubeMX关

    2024年02月05日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包