0

我必须将我的 SMT32f103rb 连接到蓝牙模块 hc-05 并在连接蓝牙模块的手机和计算机之间进行传输。我像这样连接它:

  • hc05 VCC -> +5V stm
  • hc05 接地 -> 接地 stm
  • hc05 TXD -> PA10 stm
  • hc05 RXD -> PA9 stm

下一步是使用标准密码(1234)将我的手机连接到 hc-05。它起作用了然后我在我的android设备上下载了串行蓝牙终端(如windows上的hterm)。

现在我不知道下一步该做什么。应用程序连接到BT,但我不知道如何将其发送到计算机。要配置我的 stm,我使用 CubeIDE。

4

2 回答 2

1

配置你的stm32 pinout你可以使用STMCubeMX软件STM32:将pin PA9和PA10设置为UART。

STM32 在 Keil IDE 中有一些 USART 功能。你可以看到我回答的问题STM32 HAL rx interrupt can't get bytes correct

HAL_UART_Receive(&s_UARTHandle, buffer, sizeof(buffer); //receive data over usart
HAL_UART_Transmit(&s_UARTHandle, buffer, sizeof(buffer), HAL_MAX_DELAY);//send data

HC-05 阅读数据表以了解必须发送哪个命令 AT:HC-05 必须使用 AT COMMAND 配置为从机AT+ROLE=0

所有 AT 命令均由 USART 发送

嵌入式系统需要阅读大量文档,尤其是数据表。hc-05 数据表http://www.electronicaestudio.com/docs/istd016A.pdf

于 2019-12-29T20:08:52.670 回答
1

我认为您正在遵循这样的教程:https ://www.electronicshub.org/hc-05-bluetooth-module/

我不知道你到底有什么应用程序以及它发送什么数据。这很可能是问题所在。像这里使用的应用程序不是很复杂,Android中的任何BT通信都是基于BluetoothAdapter类的。您可以按照https://www.youtube.com/watch?v=iFtjox9_zAI轻松编写自己的应用程序或从网上复制代码。

要添加发送和接收功能,请参阅Android 示例蓝牙代码以通过蓝牙发送简单字符串

发送和接收是使用RfcommSockets附加的OutputStream,这是在代码中

 if(bondedDevices.size() > 0) {
            Object[] devices = (Object []) bondedDevices.toArray();
            BluetoothDevice device = (BluetoothDevice) devices[position];
            ParcelUuid[] uuids = device.getUuids();
            BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuids[0].getUuid());
            socket.connect();
            outputStream = socket.getOutputStream();
            inStream = socket.getInputStream();

public void write(String s) throws IOException {
outputStream.write(s.getBytes());

或者从 PlayStore 加载应用程序蓝牙终端 HC-05并尝试使用它https://play.google.com/store/apps/details?id=project.bluetoothterminal&hl=de

如果您想发送整个.apk文件而不是简单的命令字符串,您必须使用另一个协议/蓝牙配置文件选项(FTP、OPP 或 OBEX)。为此获取应用蓝牙文件传输 https://www.androidpit.com/how-to-send-apps-with-bluetooth

为了能够发送整个文件,您必须在 STM32 上实现文件系统,否则您只能使用从蓝牙接收缓冲区读取数据然后将其作为原始二进制数据复制到内存的程序将二进制文件写入内存。

(使用蓝牙传输文件背后的技术在http://www.diva-portal.org/smash/get/diva2:1020079/FULLTEXT01.pdf - File Transfer Using Bluetooth中有解释)

于 2019-12-28T09:14:27.210 回答