【物联网】JDY-31 蓝牙传输模块的使用、调试和传输

JDY-31蓝牙传输模块是一款基于蓝牙3.0 SPP设计的无线通信模块,支持Windows、Linux、Android数据透传。它工作在2.4GHz频段,采用GFSK调制方式,最大发射功率为8dBm,最大发射距离可达30米。该模块支持通过AT命令修改设备名、波特率等设置,使用灵活方便。

模块参数

  • 型号:JDY-31
  • 工作频段:2.4GHz
  • 通信接口:UART
  • 工作电压:1.8-3.6V(建议3.3V)
  • 工作温度:-40℃ - 80℃
  • 天线:内置PCB天线
  • 传输距离:30米
  • 主从支持:从机
  • 模块尺寸:19.6 * 14.94 * 1.8 mm(长宽高)
  • 蓝牙版本:Bluetooth 3.0 SPP
  • STM焊接温度:<260℃
  • 工作电流:7.5mA
  • 发射功率:8dBm(最大)
  • 接收灵敏度:-97dBm SPP
  • 最大吞吐量:16K bytes/s(Android、Windows)

引脚功能

  1. VCC:供电引脚,连接到正极电源(通常是3.3V或5V)。
  2. GND:地引脚,连接到负极地。
  3. TXD:串行数据发送引脚,用于将数据从模块发送到外部设备。
  4. RXD:串行数据接收引脚,用于接收外部设备发送的数据。
  5. EN:使能引脚,用于控制模块的工作状态。
  6. STATE:状态引脚,用于提供模块的状态信息。

AT指令

AT指令用于与设备进行交互,包括配置、控制和查询。以下是常用的AT指令:

  • AT+VERSION:查询版本号
  • AT+RESET:软复位
  • AT+DISC:断开连接(连接状态下有效)
  • AT+LADDR:查询模块的MAC地址
  • AT+PIN:连接密码设置与查询,默认为1234
  • AT+BAUD:波特率设置与查询,默认为9600
  • AT+NAME:广播名设置与查询,默认为JDY-31-SPP
  • AT+DEFAULT:恢复出厂设置
  • AT+ENLOG:串口状态输出使能,默认为1

使用UART通信协议实现JDY-31与STM32连接通信

要使用JDY-31模块,首先需要将其与STM32开发板通过UART接口连接。以下是连接步骤和示例代码:

  1. 将JDY-31的VCC和GND分别连接到STM32的3.3V电源和地。
  2. 将JDY-31的TXD连接到STM32的RXD(例如PA10)。
  3. 将JDY-31的RXD连接到STM32的TXD(例如PA9)。

示例代码:

#include "stm32f10x.h"
#include "stdio.h"

// 重定向printf函数到UART
int fputc(int ch, FILE *f) {
    while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
    USART_SendData(USART1, (uint16_t) ch);
    return ch;
}

void USART_Configuration(void) {
    USART_InitTypeDef USART_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    USART_InitStructure.USART_BaudRate = 9600;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_Parity = USART_Parity_Even;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    USART_Init(USART1, &USART_InitStructure);

    USART_Cmd(USART1, ENABLE);
}

int main(void) {
    USART_Configuration();
    printf("AT+VERSION\r\n");
    while (1) {
        // 循环中可以添加其他操作
    }
}

通过上述步骤,可以实现JDY-31蓝牙模块与STM32开发板的通信。通过发送AT指令,可以控制模块的配置和行为。在实际应用中,可以根据具体需求发送不同的AT指令来实现所需的功能。

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

❤欢迎关注我的知乎:对error视而不见

代码获取、问题探讨及文章转载可私信。

☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。

🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇

点击领取更多详细资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI_Guru人工智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值