HC-05蓝牙模块配置

前言

随着物联网技术的发展,无线通信技术受到了广泛的关注。蓝牙因其低功耗、操作简单等优点,在短距离通信方面有很大市场。本文结合stm32课设经历,记录一下自己学习蓝牙模块的收获,主要内容HC-05蓝牙模块的配置方法,蓝牙调试助手app,HC串口调试助手。


一、HC-05蓝牙模块的配置方法

  如上图所示:

1、下载串口调试助手并打开软件。

2、将HC-05与USB转TTL模块连接,对应引脚为VCC-VCC、GND-GND、TXD-RXD(注意交叉连接)。

3、按住HC-05的黑色按钮,将USB转TTL与电脑连接,待HC-05的指示灯变为慢闪后松开。

4、在串口调试助手软件中设置参数,波特率为38400、校验位为None(无)、数据位为8、停止位为1,参数设置好后点击打开串口按钮,选择相应端口。

5、在图示圈3的位置输入AT,按ENTER换行后点击手动发送,软件在圈5位置返回OK,则表示进入到AT指令模式。

6、指令集:

                AT+ PSWD?查询密码        默认1234

                AT+NAME?查询名称        默认HC-05

                AT+ UART?查询通信波特率        与stm32通信时建议设置为9600

                AT+PSWD=Tff      蓝牙密码设置为Tff

                AT+NAME=Chariot        蓝牙名称设置为Chariot

                AT+UART=9600        将波特率设置为9600

  7、更改蓝牙名称便于识别,设置密码可以防止他人连接蓝牙模块,乱发送指令数据,导致工作混乱。

(进入AT指令的波特率必须为38400,将USB转TTL连接到电脑上时,需按住HC-05的黑色按钮)

二、STM32F103C8T6代码

1.USART.C文件

代码如下:

#if SYSTEM_SUPPORT_OS
#include "includes.h"	  
#endif

struct __FILE
{
    int handle;
};


void _sys_exit(int x)
{
    x=x;
}


int fpuct(int ch,FILE *f)
{
    while(SET!=USART_GetFlagStatus(USART3,USART_FLAG_TC));
    
    USART_SendData(USART3,ch);
    return ch;
}


void Usart3_Init(u32 baud)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef  USART_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
    
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
    
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;			  
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;	    
	GPIO_Init(GPIOB,&GPIO_InitStructure);  
    
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;		  
	GPIO_Init(GPIOB,&GPIO_InitStructure); 

	USART_InitStructure.USART_BaudRate=baud;                    	
	USART_InitStructure.USART_WordLength=USART_WordLength_8b;		
	USART_InitStructure.USART_StopBits=USART_StopBits_1;			
	USART_InitStructure.USART_Parity=USART_Parity_No;				
	USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; 
	USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;	 
    
	USART_Init(USART3,&USART_InitStructure);	
	
	USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
	USART_ClearFlag(USART3,USART_FLAG_TC);
    
	NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; 	   
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; 	 
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; 	
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 	
	NVIC_Init(&NVIC_InitStructure);	                
    USART_Cmd(USART3, ENABLE);
    MotorInit();
}


#if EN_USART3_RX   
   	
u8 USART_RX_BUF[USART_REC_LEN];     

u16 USART_RX_STA=0;       
extern int g_USART3_FLAG ;
extern int Mode; 

void USART3_IRQHandler(void) 
	{
	u8 Res;
#if SYSTEM_SUPPORT_OS 
	OSIntEnter();    
#endif
	if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET) 
		{
		Res = USART_ReceiveData(USART3);
		
        if(Res == 'A') g_USART3_FLAG = 1;//前进
		if(Res == 'B') g_USART3_FLAG = 2;//后退
			 
        } 

     #if SYSTEM_SUPPORT_OS
	OSIntExit();  											 
#endif
} 
#endif 

int k;
void UsartPrintf(USART_TypeDef * USARTx,char * fmt ,...)
{
    unsigned char UsartPrintBuf[256];
    va_list ap;
    unsigned char *pStr = UsartPrintBuf;
    
    va_start(ap,fmt);
    vsprintf((char *)UsartPrintBuf,fmt,ap);
    
    va_end(ap);
    while(*pStr != 0)
    {
        USART_SendData(USARTx,*pStr++);
        while(USART_GetFlagStatus(USARTx,USART_FLAG_TC) == RESET);
    }
    
    for(k=1;k<=3;k++)
    {
        delay_ms(1000);
    }
}

2.USART.H文件

代码如下:

#define USART_REC_LEN   200
#define EN_USART3_RX  1

void Usart3_Init(u32 baud);
void USART3_IRQHandler(void);
void usart3_putc(char ch);
void usart3_puts(const char *s);
int fpuct(int ch,FILE *f);
void _sys_exit(int x);

void UsartPrintf(USART_TypeDef * USARTx,char * fmt ,...);
    
extern int g_USART3_FLAG ;
extern u8 USART_RX_BUF[USART_REC_LEN];
extern u16 USART_RX_STA;

#endif

三、蓝牙调试器

1、打开蓝牙调试器软件,点击底部中间的扫描按钮,显示可配对的设备。软件可直接百度搜索下载,但苹果手机无法下载。

2、点击上图的 + 变成红色的 X 时,蓝牙与手机完成连接。

 

3、点击底部的按钮控制可以设置蓝牙发送的数据,控制DIY。

 

4、点击编辑模式可以设置按钮按下与松开时发送的数据。

 

感谢浏览
  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人天笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值