![](https://csdnimg.cn/release/download_crawler_static/10652898/bg4.jpg)
图 2.2 ATK-HC05 蓝牙模块与探索者开发板对接实物图
注意,连接好之后,记得检查 P10 的跳线帽哦!!必须短接:USART3_RX 和 GBC_TX 以
及 USART3_TX 和 GBC_RX。另外,在实际使用的时候,如果不需要进入 AT 设置和状态指示,
则连接蓝牙模块只需要 4 根线连接即可:VCC/GND/TXD/RXD。
3、软件实现
本实验,我们在标准例程:USMART 调试实验的基础上修改,本章还需要用到定时器
和按键,所以先添加 key.c 和 timer.c。
然后,在 HARDWARE文件夹里面新建 USART3 和 HC05 两个文件夹,并分存放 usart3.c,
usart3.h 和 hc05.c,hc05.h 等几个文件。并在工程工程 HARDWARE 组里面添加 usart3.c 和
hc05.c 两个文件,并在工程添加 usart3.h 和 hc05.h 的头文件包含路径。
在 usart3.c 里面,我们输入如下代码:
#include "sys.h"
#include "usart3.h"
#include "stdarg.h"
#include "stdio.h"
#include "string.h"
#include "timer.h"
//串口发送缓存区
__align(8) u8 USART3_TX_BUF[USART3_MAX_SEND_LEN];
//发送缓冲,最大 USART3_MAX_SEND_LEN 字节
//串口接收缓存区
u8 USART3_RX_BUF[USART3_MAX_RECV_LEN];
//接收缓冲,最大 USART3_MAX_RECV_LEN 个字节.
//通过判断接收连续 2 个字符之间的时间差不大于 10ms 来决定是不是一次连续的数据.
//如果 2 个字符接收间隔超过 10ms,则认为不是 1 次连续数据.也就是超过 10ms 没有接
//收到任何数据,则表示此次接收完毕.
//接收到的数据状态
//[15]:0,没有接收到数据;1,接收到了一批数据.
//[14:0]:接收到的数据长度
vu16 USART3_RX_STA=0;