做网站开发的,wordpress订阅功能,简述网站建设主要流程,做一个网站要多久STM32CubeIDE基础学习-HC05蓝牙模块和手机通信 文章目录 STM32CubeIDE基础学习-HC05蓝牙模块和手机通信前言第1章 硬件连接第2章 工程配置第3章 代码编写3.1 手机指令控制LED 第4章 实验现象总结 前言
前面的文章学习了串口通过轮询和中断的简单使用方法#xff0c;现在就来用…STM32CubeIDE基础学习-HC05蓝牙模块和手机通信 文章目录 STM32CubeIDE基础学习-HC05蓝牙模块和手机通信前言第1章 硬件连接第2章 工程配置第3章 代码编写3.1 手机指令控制LED 第4章 实验现象总结 前言
前面的文章学习了串口通过轮询和中断的简单使用方法现在就来用这个串口实践一下巩固串口使用轮询的方式实现串口通信实现手机和蓝牙串口模块通信。
STM32CubeIDE基础知识学习回顾
实验目的 学习使用蓝牙无线串口和手机进行通信功能的使用实现手机蓝牙调试助手发送指令给蓝牙模块从而通过给单片机串口处理进而实现单片机控制LED的功能。 第1章 硬件连接
接线如下表所示
引脚标号单片机HC05蓝牙模块15VVCC2GNDGND3PB11TXD4PB10RXD
注意 1、单片机串口配置的波特率是多少那么蓝牙模块的通信波特率也需要对应设置为多少才行也就是两者的通信波特率需要保持一致才行不然手机会显示乱码的。 2、本实验可以直接使用蓝牙模块的通信功能不用配置相关功能及参数了所以代码不用添加配置指令代码直接添加串口功能代码即可。
第2章 工程配置
本实验将采用前面的LED工程作为模板直接拷贝在上面添加串口功能配置即可。
按照标号的顺序依次配置即可如下图所示 串口模式选择异步通信下面串口的参数可以随意自己设置合适的我设置波特率为1152008位数据位1位停止位无奇偶校验。
参数配置完成后如下图所示 可以看到芯片处多了一个USART3的定义。
到此串口3相关配置就完成了生成工程就可以编写代码了。
第3章 代码编写
生成代码后可以看到main文件里面多了一个串口3的初始化函数如下图所示 进去该函数以后可以看到相关串口参数定义如下图所示 串口引脚配置如下图所示 当检查代码没有问题以后就可以进行功能代码的编写了。
3.1 手机指令控制LED
变量定义如下图所示 代码片示例如下 /* USER CODE BEGIN 1 */char bufcahr[] system is ready!; /* 开机提示 */uint8_t rx_buf 0; /* USER CODE END 1 */main函数里面编写串口轮询功能代码如下图所示 代码片示例如下 /* Infinite loop *//* USER CODE BEGIN WHILE */HAL_UART_Transmit(huart3, (uint8_t *)bufcahr, sizeof(bufcahr), 1000); /* 开机提示 */while (1){HAL_UART_Receive(huart3, (uint8_t *)rx_buf, sizeof(rx_buf), 1000);/* 串口接收 */if (rx_buf O) /* 开灯指令 */{LED(0); /* 点亮LED */}else if (rx_buf F) /* 关灯指令 */{LED(1); /* 关闭LED */}else{HAL_UART_Transmit(huart3, (uint8_t *)please input cmd!, 17, 1000);/* 发送提示 */}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}在while循环外面写一个串口发送函数用来提示正常开机并且说明串口正常从而可以发送控制指令。 接着在while循环里面添加串口接收函数用来接收手机发给蓝牙的指令。 下面添加if判断如果判断接收的指令和手机发过来的一致那么就执行里面开/关灯的功能操作否则就执行后面的提示语句。
第4章 实验现象
编译下载代码后等待手机蓝牙调试助手正常连接蓝牙名字后就可以进入消息收发对话模式界面了。
按一下开发板复位按键可以看到打印一条开机提示语句接着就可以输入控制指令‘O’或‘F’了。效果如下图所示。 或者直接在按钮控制界面点击按钮控制即可提前编辑好相关指令就行如下图所示 发送大写字母O就可以看到单片机的LED被点亮了发送大写字母F就可以看到单片机的LED熄灭了。 如果要有提示可以在LED功能代码下面添加串口发送函数提示即可。如下图所示 总结
通过蓝牙模块实现无线通信从而实现串口控制功能。主要手机指令发送正确基本没有什么问题的。
APP可以直接在手机应用商店搜索下载一般搜索蓝牙调试助手就行(具体需要下载测试才行)。