实战项目(2)STM32cubeMX配置蓝牙模块

举报
yd_274589494 发表于 2023/07/24 14:18:26 2023/07/24
【摘要】 @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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。