STM32 蓝牙串口 JDY-31

蓝牙串口 JDY-31

在进行单片机开发过程中难免会用到串口传输一些数据,本文介绍如何在 Windows 环境中连接蓝牙串口进行数据传输。


  • 首先用串口工具(TTL)查看蓝牙模块是否正常工作(可以略过)

    在这里插入图片描述

  • 通过 AT 指令查看版本号(默认波特率为9600)

    在这里插入图片描述

  • 打开电脑蓝牙设置

    在这里插入图片描述

    按照如图顺序依次进行

  • 选择相应的蓝牙模块

    注意:电脑的 COM 端口需要作为传出,因为要求电脑启动连接。 蓝牙模块无法主动发动连接请求

    在这里插入图片描述

  • 操作后如下图

    在这里插入图片描述

  • 接着打开串口助手(这里使用 vofa+)

    在这里插入图片描述

    1:端口选择电脑的蓝牙端口,波特率为9600(根据自己的设定)

    2:点击连接后会跳出 2 处的卡片,点击卡片输入 pin 码连接(pin码可通过 AT 指令配置和读取)

    连接成功后蓝牙模块上闪烁的红灯会常亮


到此,蓝牙串口的配置就完成了。

接下来简单演示一下 STM32 配合蓝牙模块做串口使用。

  • 首先连接模块到单片机的串口上

    在这里插入图片描述

  • 正常使用串口发送数据即可

    while(1)
    {
        UART_printf(&huart1, "JDY-31-TEST\r\n");
        HAL_Delay(500);
    }
    
    // 串口封装
    #if 0
    int UART_printf(UART_HandleTypeDef *huart, const char *fmt, ...)
    {
        va_list ap;
        va_start(ap, fmt);
        int length;
        char buffer[128];
        length = vsnprintf(buffer, 128, fmt, ap);
        HAL_UART_Transmit(huart, (uint8_t *)buffer, length, HAL_MAX_DELAY);
        va_end(ap);
        return length;
    }
    #endif
    
  • 在电脑端打开蓝牙串口即可接收到数据

    在这里插入图片描述


以上是蓝牙串口的简单应用,有时做开发时可以少连几根线,或者远程传输一些数据,具有很强的实用性,使用起来也很简单。通过蓝牙串口也可以连接手机的蓝牙串口工具,方便调试。


此处附上 AT 指令,方便查阅:

在这里插入图片描述


BB两句:树莓派的蓝牙串口功能貌似不能和蓝牙模块共同使用,具体原因好像是树莓派连接蓝牙后若要启动蓝牙串口还需蓝牙设备向树莓派发送连接请求,而蓝牙模块不能发起请求,导致虽然树莓派连到了蓝牙模块,但无法使用蓝牙串口功能。而手机的蓝牙串口软件可以与树莓派建立起正常串口连接。

### 关于STM32使用蓝牙模块JDY-31与HAL库 #### 配置硬件连接 为了使STM32能够通过蓝牙模块JDY-31正常工作,需确保两者之间有正确的硬件连接。通常情况下,JDY-31的TXD引脚应连接到STM32微控制器的RXD引脚上,而JDY-31的RXD则要接到STM32的TXD接口处[^4]。 #### 初始化UART通信 在`main.c`文件中初始化UART外设用于处理来自蓝牙设备的数据传输: ```c /* USER CODE BEGIN Includes */ #include "motor.h" /* USER CODE END Includes */ int main(void){ /* ...其他初始化代码... */ while (1) { HAL_UART_Receive(&huart1, &Receive, 1, HAL_MAX_DELAY); // 等待接收蓝牙命令 if(Receive == 'w') Upper(); else if(Receive == 's') Lower(); else if(Receive == 'a') Left(); else if(Receive == 'd') Right(); else Stop(); /* 用户自定义功能实现部分 */ } } ``` 上述代码展示了如何设置一个简单的循环来监听并响应由手机应用程序经由蓝牙发送过来的方向控制指令。 #### 创建电机驱动函数 对于具体的应用场景比如遥控小车来说,在头文件`Motor.h`里声明几个基本动作方法如前进(`Upper`)、后退(`Lower`)、左转(`Left`)、右转(`Right`)以及停止(`Stop`)等操作,并在对应的源文件内完成这些函数的具体逻辑编写。 #### STM32CubeMX项目搭建 借助STM32CubeMX工具可以简化对外围设备的支持配置过程。启动该软件之后新建工程项目,按照向导提示选择合适的MCU型号,接着勾选必要的组件和服务(例如USART),最后生成适用于Keil MDK环境下的初始框架以便进一步开发[^3]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值