实战项目(2)STM32cubeMX配置蓝牙模块
【摘要】 @TOC 前言本篇文章带大家了解并学会使用蓝牙模块 一、蓝牙模块介绍JDY31蓝牙模块JDY-31 蓝牙基于蓝牙 3.0 SPP 设计,这样可以支持 Windows、Linux、android 数据透传,工作频段 2.4GHZ,调制方式 GFSK,最大发射功率 8db,最大发射距离 30 米,支持用户通过AT 命令修改设备名、波特率等指令,方便快捷使用灵活。蓝牙接线方式VCC-3.3VGND...
@TOC
前言
本篇文章带大家了解并学会使用蓝牙模块
一、蓝牙模块介绍
JDY31蓝牙模块
JDY-31 蓝牙基于蓝牙 3.0 SPP 设计,这样可以支持 Windows、Linux、android 数据透传,
工作频段 2.4GHZ,调制方式 GFSK,最大发射功率 8db,最大发射距离 30 米,支持用户通过
AT 命令修改设备名、波特率等指令,方便快捷使用灵活。
蓝牙接线方式
VCC-3.3V
GND-GND
TXD-RXD
RXD-TXD
二、cubeMX配置及代码解析
1.cubeMX配置
1.选择型号
2.设置晶振
3.开启串口中断和设置波特率
这里选择的是串口3大家根据自己的接线选择串口号
4.设置时钟树
5.设置一个灯用来检测蓝牙功能
6.创建工程
2.代码解析
蓝牙大家可能会觉得很高大上其实不然他和串口的使用方法是完全一样的,
下面就给大家讲解蓝牙代码的编写。
//灯LED1的IO定义
#define LED1_RESET() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) //设置LED1低电平
#define LED1_SET() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET) //设置LED1高电平
u8 RX_dat=0;//接收变量
u8 TX[]="Hello";
//回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART3)
{
if(RX_dat==0xa1)
{
LED1_SET();
HAL_UART_Receive_IT(&huart3,&RX_dat,1);//启动接收函数
}
else if(RX_dat==0xa2)
{
LED1_RESET();
HAL_UART_Receive_IT(&huart3,&RX_dat,1);//启动接收函数
}
}
}
HAL_UART_Transmit(&huart3,TX,sizeof(TX),10000);//开机发送Hello
while(1)
{
HAL_UART_Receive_IT(&huart3,&RX_dat,1);
}
总结
蓝牙大家不用觉得可怕使用起来和串口是一样的。大家有问题可以留言或者私信,喜欢的朋友点个赞。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)