editor 发布于:周五, 07/15/2016 - 16:50 ,关键词:

一言不合就放假了!!!

今天记录一下我使用MM32开发板驱动HC05蓝牙模块与Android手机通信的过程。说实话,整个过程满是狗血。

一、HC05简介

HC05是一块主从一体的串口蓝牙模块。也就是说,该模块可以配置成主模式、从模式(当然也可以配置成主从回环,不过不介绍,因为我没用过),与单片机通过串口通信。所以说,如果该蓝牙模块配置好了主从模式和波特率,就基本不需要人为操作了,我们只管进行串口通信就行了。

二、HC05配置

在配置之前,先看看其引脚:

从上到下依次为STATE、RXD、TXD、GND、VCC、EN。实际上,我们在配置蓝牙时,就是使用电脑通过串口将配置数据发送给蓝牙以达到配置蓝牙寄存器的目的。因此,我们需要一台电脑、一款串口调试助手软件(随便哪款都行)、一个USB转串口工具、和四根杜邦线(因为我们只用到TXD、RXD、VCC、GND)。

VCC--VCC

GND--GND

TXD--RXD

RXD--TXD

将USB转串口与蓝牙模块按照上图连接。连接好后,按住蓝牙模块正面右下角的按钮不放,将USB转串口插进电脑USB端口。等到蓝牙模块的指示灯每2秒亮一次,一次亮2秒,即进入了AT(配置)模式。打开串口调试助手软件,选择对应的端口,注意此时的波特率固定为38400。

接下来我们即可配置蓝牙了,介绍3个主要的蓝牙AT指令。

上图指令用来设置蓝牙的名称,方便连接时寻找你要配对的蓝牙。

ROEL指令用来设置蓝牙的主从模式,因为我们要使用手机与蓝牙通信,而且是手机发送数据给蓝牙模块,所以设置为从模式。

UART指令用来设置蓝牙通信的比特率,初始波特率一般为9600,。但是本人习惯设置为115200。

同时,我们也可以发送指令查询我们对蓝牙模块的配置,下图即我对蓝牙的配置(主模式、波特率:115200)。

三、程序设计

因为蓝牙串口通信与串口通信并没有区别,所以我们使用例程中的串口程序USART1修改,但是使用串口USART2。

例程中的USART1程序中,首先是对引脚PA2、PA3的初始化以及USART1的配置,我们只需要将USART1的引脚改为USART2的引脚PA2、PA3并将USART1改为USART2就完成了初始化。但是,数据收发确实在中断服务程序中完成的,我们需要了解如何进入中断服务程序,如何进行数据收发。因此,需要查看串口USART的寄存器。

首先,我们查看UART中断状态寄存器,了解程序如何进入中断。

其中,位1接收有效数据中断标志位,即当接收到有效数据以后,改位置1,产生中断。然后,在中断服务程序中,单片机读取接收到的数据。

但是需要注意,每次进入中断服务程序以后,一定要将中断标志位清零。开始调试是,总是不能进入主函数的处理函数,于是在中断服务程序里加了一段LED闪烁的程序,发现即使数据接收结束,LED一直闪烁,说明还是一直在进行中断,发现了问题。

所以我们要置位中断清除寄存器的位1——接收中断清除位。还有,因为是将UART1的程序改成UART2的程序,所以请大家修改是一定仔细。我因为将其中一个UART1忘记修改,调试了整整一天没发现问题所在!!!

其他的配置与UART1完全一样,大家可以自己对照着进行编写。还有,为了区分发送的两段数据是两次,加入了定时器4,间隔超过10MS即为两段数据(两次发送的数据)。

四、下载验证。

下载好程序以后,打开手机蓝牙软件,搜索设备。蓝牙串口助手手机.zip

如上图,蓝牙设备为DSFSLAVE,连接进入键盘模式。提示连接成功,这款软件,你可以随意设置按键发送的值。

按下按键中的S和R按键,会提示发送成功。

按下R按键,LED0点亮。

按下S按键,LED0熄灭。

五、额外推荐

这里强势安利一波灵动微电制作的DEBUGER,性能感觉很不错,而且简约小巧。

不过可惜,我没有固件,心里不踏实。

围观 345

Android蓝牙发送hc05,【MM32F103试用体验】+HC05蓝牙与Android手机通信相关推荐

  1. Android体育类游戏有哪些,体验真实的体育 Android竞技游戏推荐

    3D帆船竞速 一款画面相当棒的帆船竞速游戏,这款游戏没有特别的游戏内容设置,就是一个简单的速度考验,如果你能驾驭世界上最好的帆船,那么不妨下载这款游戏一试身手. 游戏截图 游戏截图 游戏通过镜像的方式 ...

  2. linux 蓝牙发送文件夹,linux下通过蓝牙发送文件到手机上

    已经把bluez和openobex移植到开发板上,用以下命令能成功把文件发送到手机: [root@Real /]# usb 1-2.1: new full speed USB device using ...

  3. HC-05蓝牙模块遇到的问题与解决方法及实现和手机通信

    文章目录 1.蓝牙模块的调试--解决无法与设置AT命令的问题 1)问题1:没有搜索到串口 方法1:网上下载驱动 方法2:自己更新驱动 2)问题2:串口打开失败--PL2303HXA自2012已停产,请 ...

  4. 单片机蓝牙烧录_实现蓝牙HC-05、06与单片机的连接及与手机通信

    蓝牙(Bluetooth):是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换(使用2.4-2.485GHz的ISM波段的UHF无线电波).蓝牙技术最初由电信巨头爱立信公司 ...

  5. STM32CubeMX(2)——串口实现HC-05蓝牙模块与手机通信

    STM32实现蓝牙与手机通信 使用的蓝牙 STM32Cubemax配置 手机连接蓝牙 代码编写 总结 使用的蓝牙 本文使用的蓝牙是市面上常用的HC-05蓝牙模块 其引脚和STM32的连接为 蓝牙模块 ...

  6. stm32+hx711+蓝牙hc05 称重系统(蓝牙电子秤)

    stm32+称重模块hx711+蓝牙模块hc05 本项目使用主控stm32f103c8t6,称重模块hx711,蓝牙模块hc05上传至手机app/电脑app显示数值 模块 1.stm32f103c8t ...

  7. HC-05蓝牙模块设置从机与手机通信

    1.蓝牙与USB转TTL模块连接方式 RXD-TX TXD-RX VCC-VCC(5V-5V) GND-GND EN引脚不用接 2.进入AT模式 首先让AT引脚置高,然后接上蓝牙模块(有按键则按住蓝牙 ...

  8. android ble从设备,从Android设备发送命令到蓝牙

    我发现命令从我的Android设备发送到蓝牙设备. 蓝牙与微控制器相关联.我的努力如下: public class MainActivity extends AppCompatActivity { p ...

  9. android 蓝牙传输文件,android-通过蓝牙发送文件

    实际上,我正在开发一个免费的应用程序,当按下某个按钮时,它需要通过蓝牙共享自身,并且我使用了以下代码(我尝试从sd卡中获取文件): BluetoothAdapter mBluetoothAdapter ...

  10. android蓝牙发送文件夹里,Android蓝牙发送文件问题

    我正在编写一个小程序,通过蓝牙在Android和PC之间发送文件.我已经阅读了谷歌android站点中的蓝牙聊天示例. 目前,我的版本通过蓝牙发送文本消息非常有效,但是当我发送一些文件时,大约> ...

最新文章

  1. 洛奇6里很喜欢的一段话!洛奇6经典台词!而是你能挨多重,并且坚持向前,你能承受多少并且坚持向前,这样才叫胜利!
  2. Highcharts 环境配置介绍
  3. java并发编程核心方法与框架_Java并发编程核心方法与框架-Future和Callable的使用...
  4. 在local模式下的spark程序打包到集群上运行
  5. 关于计算机航天生物的想像作文,未来的航天器想象作文750字
  6. 基于流的EXCEL文件导出,SXSSFWorkbook源码解析
  7. android源码分析网上随笔记录
  8. 服务器开启虚拟化有什么好处
  9. 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)
  10. 老旧计算机桌面,四种旧电脑改造桌面虚拟化的方案
  11. 卸载精灵 v1.1 绿色
  12. MobaXterm连接到Linux虚拟机教程
  13. PP实施经验分享(3)——MRP运行问题常用解决方式
  14. VM虚拟机Ubuntu配置静态ip,亲测有效
  15. Spring中过滤器(Filter)和拦截器(Interceptor)的区别和联系
  16. 根文件系统(rootfs)理解
  17. Download EditPlus Text Editor
  18. 程序人生:扒一扒程序员为什么总在加班?拿生命敲代码?
  19. web前端布局练手项目
  20. vm虚拟机安装lede旁路由_windows Server 2019 虚拟机安装 Openwrt/LEDE 软路由

热门文章

  1. mac Parallels Desktop安装ubuntu教程
  2. 老赵谈IL(2):CLR内部有太多太多IL看不到的东西,包括您平时必须了解的那些...
  3. etal斜体吗 参考文献_参考文献的标准格式
  4. CSR8系列ROM版本芯片介绍
  5. 回溯算法高效解标准数独
  6. Python爬取百度图片(高清原图)
  7. java初学乍练之用Calendar打印万年历
  8. 网络内共享计算机无法访问,如何解决无法访问局域网内共享文件夹的问题?
  9. linux 3g拨号,中兴MF637U 3G 联通 linux 拨号
  10. 软考中级网络工程师学习技巧