首页

HC-05蓝牙接口,支持STM32F103C8T6 | STM32蓝色药丸

在这个项目中,我将向您展示如何将HC-05蓝牙与STM32F103C8T6蓝药丸板连接。通过将像HC-05或HC-06这样的蓝牙模块与STM32接口,您可以从另一个蓝牙设备(如智能手机)与STM32 MCU进行无线通信。

作为这个项目的演示,我将通过安装在Android手机上的蓝牙App来控制连接到单片机Pin PC13上的板载LED。

HC-05蓝牙模块

简介

蓝牙是嵌入式系统中最常用的无线通信协议之一。即使在像手机和笔记本电脑这样的消费电子产品中,它也通常用于数据传输和音频功能。

事实上,随着BLE(蓝牙低能耗)的发展,基于蓝牙的无线耳机的开发和实现达到了顶峰(对不起,3.5mm耳机插孔的粉丝,包括我自己!)

来到嵌入式世界,HC-05蓝牙模块是最流行的蓝牙模块,使用了很长一段时间。它是一个简单的基于UART的模块,运行在传统的2.4GHz无线频率范围达10m。

我已经实现了几个HC-05蓝牙模块的项目。例如,在“HC-05蓝牙模块”教程中,我谈了一些关于HC-05蓝牙模块的基本信息,它在板上的布局,它的引脚描述,也演示了如何连接HC-05蓝牙模块和Arduino。

HC-05蓝牙模块引脚和组件

因此,我建议您参考该教程以获得HC-05蓝牙模块的其他信息。在这个项目中,我将重点研究HC-05蓝牙与STM32F103C8T6蓝药丸板的接口。

重要提示

在之前的STM32教程中,我已经讨论了STM32F103C8T6蓝药丸板的基础知识,以及如何通过板的USB端口上传程序。我不会再讨论这些话题了。因此,我建议您在继续这个项目之前,完全阅读下面提到的以前的教程。

介绍STM32F103C8T6- - - - - -”开始与STM32F103C8T6蓝色药丸

程序STM32蓝色药丸使用USB端口- - - - - -”如何上传STM32F103C8T6 USB引导程序?

此外,您可以使用任何一种编程方法,即传统的基于UART的编程,使用USB到串行适配器或基于USB Bootloader的编程,通过板载microUSB端口。

如果你打算给你的蓝药丸编程UART,那么请注意,相同的引脚正在用于与蓝牙模块通信(引脚PA9和PA10)。

如果你正在使用USB编程,然后断开蓝牙模块从STM32板,上传程序和重新连接蓝牙模块。另外,确保您设置了正确的BOOT Pin配置。

线路图

下图为HC-05蓝牙模块与STM32F103C8T6单片机的接口电路图。

支持HC-05蓝牙与STM32F103C8T6接口电路图

组件的要求

硬件

  • STM32F103C8T6蓝色药丸板
  • HC-05蓝牙模块
  • 连接电线
  • USB到串行适配器(如果通过UART编程STM32)
  • USB电缆
  • 基于Android的智能手机

软件

  • 任何蓝牙终端应用程序的Android手机

我对蓝牙App没有任何建议,您可以随意使用任何蓝牙终端App。我使用了Kai Morich的“串行蓝牙终端”作为项目的演示。如果你想用同样的,那就用链接。

连接解释

STM32F103C8T6蓝丸板和HC-05蓝牙模块的连接非常简单。蓝牙模块的RX引脚接单片机的PA9引脚,蓝牙模块的TX引脚接单片机的PA10引脚。

HC-05蓝牙模块的VCC、GND可接蓝丸板的5V、GND引脚。板载LED与PC13相连,用于演示。

HC-05蓝牙接口,支持STM32F103C8T6

现在我们已经看到了电路和连接,让我们继续进行HC-05蓝牙与STM32F103C8T6的实际接口。由于HC-05蓝牙模块是基于UART串口通信的,所以我们必须使用Blue Pill板的UART引脚与蓝牙模块进行通信。

为了使事情更简单,我使用UART1引脚,即PA9 (TX)和PA10 (RX)引脚接口HC-05蓝牙模块。上传程序时要小心。

如果你通过USB到UART转换器对STM32编程,那么你没有问题,因为你有相同的引脚编程以及。也就是说蓝牙模块肯定是断开了。

问题是如果你选择通过USB端口上传程序。在这种情况下,您必须断开蓝牙模块与STM32的通信连接,即PA9和PA10。

另一件要记住的重要事情是车载LED的连接。下图展示了LED如何连接到MCU的PC13引脚。

LED连接STM32F103C8T6

从这幅图中可以清楚地看出,当PC13引脚为LOW时,LED将被打开,当PC13引脚为HIGH时,LED将被关闭。因此,在代码中,我将使用相同的配置来打开和关闭LED。

代码

项目的代码如下所示。这是非常简单的,如果你已经实现了Arduino HC-05蓝牙模块接口,那么代码很容易理解。

const int LEDPin = PC13;
char inputData = 0;

无效的设置()

Serial1.begin (9600);
Serial1。println(“电子中心”);
Serial1。println(“HC-05蓝牙与STM32”);
pinMode (LEDPin、输出);

无效循环()

如果(Serial1.available () > 0)

inputData = Serial1.read ();

如果(inputData = = ' 0 ')

digitalWrite (LEDPin、高);
Serial1。println(" LED被关闭");

else if(inputData == ' 1 ')

digitalWrite (LEDPin、低);
Serial1。println(“LED被打开”);


上面的Serial1表示我正在使用UART1进行通信。您还可以使用STM32F103C8T6的UART2或UART3,前提是您建立适当的连接并在代码中给出适当的初始化。

工作

这个项目的工作很简单。首先将程序上传到STM32蓝色药丸上,然后按照电路图进行连接。然后进入Android智能手机的蓝牙设置,配对HC-05蓝牙模块。

当第一次配对时,它会要求一个别针。在这种情况下,输入1234或0000。对我来说是1234。配对完成后,打开Android手机上的蓝牙终端App,搜索蓝牙设备。选择HC-05蓝牙模块。

现在,配置应用程序传输' 1 '和' 0 '。当传输' 1 '时,LED将被打开,当传输' 0 '时,LED将被关闭。

HC-05蓝牙模块与STM32 App

结论

在这个项目中,我讲了一个初学者和爱好者常用的通信模块,即HC-05蓝牙模块。此外,我还演示了一个简单的项目,通过STM32F103C8T6蓝药丸板接口HC-05蓝牙。

通过Android智能手机上一个简单的蓝牙终端App与HC-05蓝牙模块进行通信,传输一些数据。然后STM32将解码数据,并将机载LED打开或关闭。

一个回应

  1. SOUNDBOX设备蓝牙总是在问题

    你好,我需要建议,
    希望断开蓝牙电路,这样它就不能发送或接受无线传输,而不破坏电路板可能正在进行的其他操作,例如充电控制…因为我无法控制它的BT-On BT-Off操作,
    希望只能够连接扬声器通过目前的3.5毫米连接器(仅有线),并继续能够通过USB PC连接器从扬声器充电。

    原因:BT常亮时语音通信安全。

留下一个回复

你的电邮地址不会被公布。

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu