STM32 您所在的位置:网站首页 低成本蓝牙模块有哪些品牌 STM32

STM32

2024-06-20 22:27| 来源: 网络整理| 查看: 265

本文主要介绍基于STM32F103C8T6和蓝牙模块实现的交互控制

简介

蓝牙(Bluetooth)是一种用于无线通信的技术标准,允许设备在短距离内进行数据交换和通信。它是由爱立信(Ericsson)公司在1994年推出的,以取代传统的有线连接方式,使设备之间能够实现低功耗、低成本的数据传输和通信。 在这里插入图片描述

蓝牙技术的特点 无线通信:蓝牙允许设备在近距离内(通常是10米左右,具体取决于设备版本)进行通信,无需使用电缆或其他物理连接。 低功耗:蓝牙技术被设计为低功耗的通信方式,这使得它在移动设备上广泛使用,如智能手机、平板电脑、蓝牙耳机等。 多设备连接:蓝牙允许一个主设备(如手机)同时连接多个从设备(如蓝牙耳机、蓝牙音箱等),实现更灵活的数据传输和通信。 通用性:蓝牙技术在许多设备和应用中得到广泛应用,例如无线耳机、键盘、鼠标、汽车蓝牙连接、智能家居设备等。 安全性:蓝牙技术在不断发展和改进中,以提高其安全性,以防止未经授权的访问和数据泄露。 蓝牙技术在不同的版本中有不同的特性和功能,从经典蓝牙(Bluetooth Classic)到低功耗蓝牙(Bluetooth Low Energy,简称BLE),每个版本都针对不同的应用场景和需求。

常见的蓝牙模块 (1)HC-05/HC-06: HC-05和HC-06是广泛使用的经典蓝牙模块,常用于与单片机(如Arduino)进行无线通信。 它们基于蓝牙2.0标准,支持串口通信(UART)协议,使得与单片机的连接和数据交换相对简单。 HC-05可作为主设备或从设备,支持蓝牙SPP(串口通信)和AT命令模式。 HC-06通常作为从设备,仅支持蓝牙SPP模式。 它们具有基本的通信范围,通常在10米左右。

(2)HM-10/CC2541: HM-10和CC2541是低功耗蓝牙(BLE)模块,适用于物联网(IoT)设备和传感器网络。 它们基于蓝牙4.0标准,具有低功耗和短距离通信的特点。 它们支持BLE通信协议,如GATT(通用属性配置文件)和ATT(属性协议),用于数据传输和连接管理。 HM-10具有较大的功能集,包括主设备和从设备模式,而CC2541主要作为从设备。 它们通常用于连接和控制传感器、智能家居设备等。

(3)RN42/RN52: RN42和RN52是经典蓝牙模块,由Microchip(以前是Roving Networks)生产。 它们基于蓝牙2.1+EDR标准,提供了丰富的功能和易于使用的接口。 这些模块支持串口通信(UART)协议,具有较大的通信范围(通常在30米以上)。 它们适用于各种应用,如音频传输、数据通信和蓝牙配对。 RN52还提供了额外的音频功能,如立体声音频传输和音频配置选项。

(4)ESP32: ESP32是一款强大的Wi-Fi和蓝牙组合模块,由Espressif Systems开发。 它集成了双核处理器、Wi-Fi、蓝牙、低功耗技术和丰富的外设接口。 ESP32支持蓝牙经典和低功耗蓝牙(BLE),具有较大的灵活性和功能性。 它广泛应用于物联网(IoT)应用、嵌入式系统和智能设备开发。

综上,本文主要介绍基于HC-05和STM32F103C8T6的蓝牙无线控制

接线

将HC-05模块的VCC引脚连接到STM32的3.3V电源引脚,GND引脚连接到STM32的地引脚。 将HC-05模块的TXD引脚连接到STM32的一个UART接收引脚(例如USART1_RX),RXD引脚连接到STM32的一个UART发送引脚(例如USART1_TX)。 如果需要进行模块的配置或进入AT命令模式,可以将HC-05模块的EN引脚连接到STM32的一个GPIO引脚,并在代码中控制该引脚的状态。 本示例中管脚连接状态如下所示:

STM32F103C8T6蓝牙模块VCCVCCGNDGNDA2RXDA3TXD 程序示例

串口UART初始化函数

void My_USART2_Init(void) { GPIO_InitTypeDef GPIO_InitStrue; USART_InitTypeDef USART_InitStrue; NVIC_InitTypeDef NVIC_InitStrue; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIO端口使能 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//串口端口使能 //实际使用的是这俩IO口 GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitStrue.GPIO_Pin=GPIO_Pin_2; //TXD GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOA,&GPIO_InitStrue); GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_InitStrue.GPIO_Pin=GPIO_Pin_3; //RXD GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOA,&GPIO_InitStrue); USART_InitStrue.USART_BaudRate=9600; USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_InitStrue.USART_Parity=USART_Parity_No; USART_InitStrue.USART_StopBits=USART_StopBits_1; USART_InitStrue.USART_WordLength=USART_WordLength_8b; USART_Init(USART2,&USART_InitStrue); USART_Cmd(USART2,ENABLE); //使能串口2 USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启接收中断 NVIC_InitStrue.NVIC_IRQChannel=USART2_IRQn; NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStrue.NVIC_IRQChannelSubPriority=1; NVIC_Init(&NVIC_InitStrue); }

主函数中关于蓝牙点灯和关灯的操作函数

while(1) { if(res=='1') { Led_On(LED1); //TIM_SetCompare2(TIM3,175); delay_ms(1000);} if(res=='2') { Led_Off(LED1); //TIM_SetCompare2(TIM3,180); delay_ms(1000);} } 示例效果

首先手机中装的蓝牙APP是如下SPP蓝牙串口助手,可支持命令聊天及键盘模式等 在这里插入图片描述 其中,接收命令是“1”时,LED点亮

if(res=='1') { Led_On(LED1); //TIM_SetCompare2(TIM3,175); delay_ms(1000);}

接收命令是“2”时,LED灯灭

if(res=='2') { Led_Off(LED1); //TIM_SetCompare2(TIM3,180); delay_ms(1000);}

具体指令可以在代码中修改,也可以使用键盘模式控制,如下所示: 在这里插入图片描述

附完整资源链接

链接:https://pan.baidu.com/s/1o-lnlWjCYFTDZIvoJBs-iQ 提取码:4wh6



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有