发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名

[经验] 【MM32F103试用体验】+HC05蓝牙与Android手机通信

2016-7-8 15:02:17  6196 Android 蓝牙
分享
5
      一言不合就放假了!!!!!      今天记录一下我使用MM32开发板驱动HC05蓝牙模块与Android手机通信的过程。说实话,整个过程满是狗血。

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

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

IMG_20160708_131807.jpg

IMG_20160708_132306.jpg

VCC--VCC

GND--GND

TXD--RXD

RXD--TXD


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

6.png

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

7.png



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

8.png

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

9.png

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

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


二、程序设计

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

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

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

10.png

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

12.png

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

11.png

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

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

三、下载验证。

        下载好程序以后,打开手机蓝牙软件,搜索设备。
蓝牙串口助手手机.zip (52.65 KB, 下载次数: 57)

Screenshot_2016-07-08-14-45-26.png

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

Screenshot_2016-07-08-14-45-36.png

Screenshot_2016-07-08-14-45-53.png

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

IMG_20160708_144706.jpg

     按下R按键,LED0点亮。

IMG_20160708_144617.jpg

       按下S按键,LED0熄灭。

四、额外推荐

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

IMG_20160708_131835.jpg

IMG_20160708_131847.jpg

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


IMG_20160708_131934.jpg
5.png

评分

参与人数 1积分 +10 收起 理由
Elecfans管家 + 10 一言不合就送积分,啦啦啦!

查看全部评分

相关经验

上海蓝居 2016-7-8 17:04:06
看到Jtag旁边的那个孔了么?猜猜作用,猜中有奖
回复

举报

MMCU5721167 2016-7-8 17:07:45
不错不错,恭喜
回复

举报

MMCU5721167 2016-7-8 17:11:36
另外,请下载我发出的最新例程使用
回复

举报

左灬旋 2016-7-8 18:26:18
上海蓝居 发表于 2016-7-8 17:04
看到Jtag旁边的那个孔了么?猜猜作用,猜中有奖

这个我还真没概念,不知道是不是和外壳固定用的。
回复

举报

左灬旋 2016-7-8 18:27:16
MMCU5721167 发表于 2016-7-8 17:11
另外,请下载我发出的最新例程使用

我用的是你最新的例程,谢谢。
回复

举报

上海蓝居 2016-7-11 09:48:43
左灬旋 发表于 2016-7-8 18:26
这个我还真没概念,不知道是不是和外壳固定用的。

钥匙扣孔,可以当做一个小玩意挂在钥匙上
回复

举报

左灬旋 2016-7-11 15:15:09
上海蓝居 发表于 2016-7-11 09:48
钥匙扣孔,可以当做一个小玩意挂在钥匙上

我的天,这太那啥了,想法太奇特了
回复

举报

擦肩的阳光 2016-7-20 09:53:47
上海蓝居 发表于 2016-7-11 09:48
钥匙扣孔,可以当做一个小玩意挂在钥匙上

额。。哪有人挂这个的……
回复

举报

张启志 2016-7-21 09:59:11
能一起交流下吗?QQ1335987903
回复

举报

上海蓝居 2016-7-21 11:00:42
擦肩的阳光 发表于 2016-7-20 09:53
额。。哪有人挂这个的……

有啊,硬件工程师的标志
回复

举报

红鱼1993 2016-7-25 20:35:27
不错的啊
回复

举报

清朗。。 2016-7-28 09:58:46
不错哇,正想学习
回复

举报

dreamerEE 2016-8-1 11:50:22
不错的尝试,可以学习下
回复

举报

奕凡321 2017-1-13 09:28:43
不错,学习了!!!!!!
回复

举报

只有小组成员才能发言,加入小组>>

569个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /5 下一条

快速回复 返回顶部 返回列表