#【软件stm32cubeIDE下配置STM32F407uartt调试蓝牙模块-学习笔记-基础样例】
前言
最近一段时间在调试蓝牙模块,因为以前也调试过,比较简单,但是越是简单的东西,很多细节越值的注意,另一方面,写这边文章也是给自己做个记录,保持初学者之心。
基础知识
本篇文章更多的时候,是讲述实际应用,比较少的讲述概念啥的,你可以理解。
你可以理解本文是一个开发者拿到蓝牙模块,如何调试,弄出一个简易小车控制,或者控制单片机的。
要是想要了解蓝牙相关知识,网上一堆文章,这里也会列举一些,先了解了解。
(1)蓝牙模块我们主要用4根线,通信需RX,TX,VCC,GND。
(2)蓝牙模块有主从之分,即有的是主机,有的是从机,还有主从一体,最好用 主从一体的。
(3)调试时,使用AT指令来调试,按着对应按键,调试到对应波特率。
(4)需要资料的话,目前,可用去官网下下载,没必要去其他地方搜寻了。
(6)根据他们官网的客服说,HC-05贵的原因主要是芯片拿货比较贵。
(7) 官方网站:www.hc01.com 。
本人开始的时候就没有注意,买了一个几个HC-6从机回来,一问客服,不能调试,还是注意下的。
环境说明
- 软件环境:STM32cubeIDE 1.8.0
- 硬件环境:STM32F407(正点原子探索者开发板)
- 蓝牙模块:蓝牙模块HC-05主从机(普遍用的这种)
- 下载模块:ST-link下载器 (下载器)
- 串口模块:串口转换器 (可用232模块代替)
- 硬件其它物品: RS485转USB串口转换器
硬件拍照
连接工具 与 手机APP
在PC端用串口助手就好了,收手机APP网上也是一抓一大把。
本次使用串口工具如下“XCOM V2.6”,这个还是挺好用的。
下载地址:http://www.openedv.com/forum.php?mod=viewthread&tid=279749&highlight=XCOM%2BV2.6
本次使用手机APP如下,这个APP以前玩小车的时候带的,网上好像找不到了,还是挺好用的。
下载地址:https://download.csdn.net/download/qq_22146161/85602584
界面如下:
第一步实验-直接调试蓝牙模块
我们拿到蓝牙模块后,不要着急调试407代码。需要先调试蓝牙模块和APP。因为我这没有232模块转口工具,只能用开发板供电,然后讲TX与RX转换器相连,具体如下是示意图。
做这一步其实有两个意义:
- 可以知道手机APP在成功连接后,每次按键时候,APP都给我们发了什么东西过来 。
- 我们可以通过进一步测试模块,熟悉蓝牙模块。
(1)这里细节还是挺多。
(1)供电范围(一定要看蓝牙模块供电范围),5V接模块3.3V很可能烧坏模块。
(2)蓝牙模块连接,因为我的转换器没有5V和3.3V供电,只能用开发板供电,这里RX和TX要对调接,要保证连线时对的,下图,在自己使用硬件连接拍摄图片。
(3)手机安装完APP后,先进入蓝牙界面,搜索蓝牙,输入配对密码1234后,才能在APP内进行连接。
(2)进行调试
当完成上述步骤,我们在PC,也就是电脑端,打开串口工具,默认波特率9600,点击连接,用手指点击APP,前后左右时,可以看到如反馈。
多次测试其实不难发现,每个按键按下去是一个状态,松开其实会发另一个状态。
我们点击16进制显示,就是就能明白,这些其实就是ASCII码字符。如下图所示。
第二步实验-调试407的串口uart
上述实验完成后,我们就可以做串口实验了。调试串口时,先单独调试收发,我使用了uart1和uart4,让两个串口分别收发。
这个部分实验之前做过很多次了,直接参考之前实验,如下链接。
实验步骤:
- 我们单独调试串口发送消息,每秒发出一条消息。
软件STM32cubeIDE下使用STM32F4xx配置uart4+DMA发送数据到串口助手-基础样例 - 我们单独调试串口接收消息,收到什么就发送什么。
软件STM32cubeIDE下使用STM32F4xx配置uart4+DMA接收数据+空闲串口函数-基础样例 - 调试完成一个串口后,调试另一个串口,将另一个串口当作输出显示用。
我们通过电脑串口转换器,给单片机单独发一条消息,让串口收啥发啥,成功就可以了。
第三步实验-联合调试
完成上述实验后,可以将蓝牙串口进行联合调试了。我们将uart1链接蓝牙,用于接收手机APP消息。uart4用于打印消息,在uart4增加对应uart1代码就像,粘贴复制,这部有什么疑问请直接看代码吧,实在是实验太多次了。
补充一点,展示收到的数组,这里只是字符接收到数组,具体后续比如写蓝牙小车的话,还需要写驱动那一部分。
实验用的代码
代码链接:https://download.csdn.net/download/qq_22146161/85603446
后期验证
如图下图,与直接连接蓝牙差不多。
细节说明
能想到的细节如下,或者说做实验时需要注意的地方。
(1)反复强调,供电不要供应错喽,上电前,一定要看看自己模块时3.3V供电还是5V.或者是时一个范围都可,否则可能刚查上电,自己模块挂了,都不知道问题出在哪。
(2)APP使用:这个APP其实已经挺老的,但是只是决定还挺好用,可能不同安卓机支持程度不同,但是都大差不差,先用手机蓝牙配对连接,然后进入APP搜索连接。
(3)蓝牙RX与TX接线,无论是与转换器相连,还是与开发板相连,都是RX对TX, TX对RX,没有反应时,可以对调调试看看。
(4)实际应该中要注意,单片机和蓝牙之间可以只接VCC,GND和蓝牙TX>>单片机RX,因为但是调试发现,如果单片机有大量数据发给蓝牙模块,会造成杜塞问题。
总结说明
本篇其实只完成了单片机接收数据那部分,后续开发蓝牙小车的话,需要根据自己实际驱动来写,记得当初玩蓝牙小车使用的驱动是L298N,后来又用过一些PWM的,具体需要根据蓝牙小车调试的。