Android 蓝牙HC-05传输至f103rb
我必须将我的SMT32f103rb连接到蓝牙模块hc-05,并在连接到蓝牙模块的手机和计算机之间进行传输。我将其连接为:Android 蓝牙HC-05传输至f103rb,android,bluetooth,stm32,hc-05,Android,Bluetooth,Stm32,Hc 05,我必须将我的SMT32f103rb连接到蓝牙模块hc-05,并在连接到蓝牙模块的手机和计算机之间进行传输。我将其连接为: hc05 VCC->+5V stm hc05 GND->GND stm hc05 TXD->PA10 stm hc05 RXD->PA9 stm 下一步是使用标准密码(1234)将我的手机连接到hc-05。它起作用了 然后我在android设备上下载了串行蓝牙终端(比如windows上的hterm) 现在我不知道下一步该怎么办。应用程序连接到BT,但我不知道如何将其发送到
- hc05 VCC->+5V stm
- hc05 GND->GND stm
- hc05 TXD->PA10 stm
- hc05 RXD->PA9 stm
现在我不知道下一步该怎么办。应用程序连接到BT,但我不知道如何将其发送到计算机。要配置我的stm,我使用CubeIDE。我想您应该遵循以下教程: 我不知道你到底有什么应用程序,它发送什么数据。这很可能就是问题所在。这里使用的应用程序并不复杂,Android中的任何BT通信都基于
BluetoothAdapter
类。你可以很容易地编写自己的应用程序,或者从网上复制代码
添加发送和接收功能cf
发送和接收是使用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();
及
或者从PlayStore加载应用程序蓝牙终端HC-05,然后试用
如果要发送整个.apk文件而不是简单的命令字符串,则必须使用另一个协议/蓝牙配置文件选项(FTP、OPP或OBEX)。为此,请获取应用程序蓝牙文件传输
为了能够发送整个文件,您必须在STM32上实现一个文件系统,否则您只能使用一个程序将二进制文件写入内存,该程序从蓝牙接收缓冲区读取数据,然后将其作为原始二进制数据复制到内存中
(使用蓝牙传输文件背后的技术在中进行了解释)我认为您正在遵循这样一个教程: 我不知道你到底有什么应用程序,它发送什么数据。这很可能就是问题所在。这里使用的应用程序并不复杂,Android中的任何BT通信都基于
BluetoothAdapter
类。你可以很容易地编写自己的应用程序,或者从网上复制代码
添加发送和接收功能cf
发送和接收是使用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();
及
或者从PlayStore加载应用程序蓝牙终端HC-05,然后试用
如果要发送整个.apk文件而不是简单的命令字符串,则必须使用另一个协议/蓝牙配置文件选项(FTP、OPP或OBEX)。为此,请获取应用程序蓝牙文件传输
为了能够发送整个文件,您必须在STM32上实现一个文件系统,否则您只能使用一个程序将二进制文件写入内存,该程序从蓝牙接收缓冲区读取数据,然后将其作为原始二进制数据复制到内存中
(使用蓝牙传输文件背后的技术在中进行了说明)配置您的stm32引脚输出您可以使用STMCubeMX软件 STM32: 将引脚PA9和PA10设置为UART STM32在Keil IDE中有一些可用的USART函数。 你可以看到我回答的问题 HC-05阅读数据表,了解必须发送的命令: HC-05必须通过AT命令配置为从机
AT+ROLE=0
所有AT命令均由USART发送
嵌入式系统需要大量的文档读取,尤其是数据表。
hc-05数据表配置您的stm32引脚输出您可以使用STMCubeMX软件 STM32: 将引脚PA9和PA10设置为UART STM32在Keil IDE中有一些可用的USART函数。 你可以看到我回答的问题 HC-05阅读数据表,了解必须发送的命令: HC-05必须通过AT命令配置为从机
AT+ROLE=0
所有AT命令均由USART发送
嵌入式系统需要大量的文档读取,尤其是数据表。
hc-05数据表您具体尝试了什么?是否将手机连接到嵌入式蓝牙?请提供更多细节?stm32上的蓝牙是否已配置?它处于从属模式等…是的,当然。我正在尝试让一些手机连接到BT模块,并通过移动终端发送信息(我也创建了自己的应用程序,但我现在真的无法实现)。我创建了连接电话-HC05,并对其进行了删减。我在配置中也没有在CubeIDE上做任何功能。我也有自己的工作程序代码,在f103rb和HTERM之间使用USART通信。你到底在尝试什么?是否将手机连接到嵌入式蓝牙?请提供更多细节?stm32上的蓝牙是否已配置?它处于从属模式等…是的,当然。我正在尝试让一些手机连接到BT模块,并通过移动终端发送信息(我也创建了自己的应用程序,但我现在真的无法实现)。我创建了连接电话-HC05,并对其进行了删减。我也没有在CubeIDE上配置任何功能。我还有自己的工作程序代码,使用f103rb和HTERM之间的USART通信。我已经编写了自己的应用程序,但我想看看它是如何在我的手机上使用基本BT终端工作的。我下载了它,但问题是我不知道如何配置我的stm,以便HC-05将从手机接收数据。我第一次尝试了一个简单的程序,若stm检测到命令“on;”stm上的led将被切换,如果它检测到“off;”stm上的led将不会切换。我已经编写了自己的usart代码,但它适用于windows终端命令(如ledon、ledoff、pulse和blink),并参考您的第一个链接(),这是我正在寻找的解决方案(帮助),但对stm不是arduino。具体来说,代码是不同的
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