STM32学习笔记1:STM32ZET6配置蓝牙模块

利用STM32配置一块蓝牙模块

1.蓝牙模块配置原理

一般我们的蓝牙是用低功耗蓝牙,这些蓝牙再调试的时候,需要我们用到串口利用AT指令与蓝牙模块通信。

串口2给蓝牙发送AT指令

,蓝牙接收到AT指令之后完成指令要求之后,将返回指令(字符串)发回串口2(例如:“ok”)

,串口2收到数据之后产生串口中断,此时我们能够利用串口1将中断产生的数据打印到串口调试助手

 串口2收发数据过程中串口2与蓝牙模块通信的波特率为9600.    

硬件引脚连接

STM32引脚 蓝牙模块引脚
USART2_RX TX
USART2_TX RX
5V VCC
GND GND

2.蓝牙模块具体操作

一,串口2的发送接收AT指令

市面上蓝牙模块各式各样,故不同蓝牙的AT指令集往往也有所不同,大家如果在淘宝上面购买的话,可以向商家索要使用说明书,我用的是zs040蓝牙模块,

 ZS040部分指令集
    AT+NAMEXXX=>名称设为XXX
    AT+ROLE0  =>从机
    AT+ROLE1  =>主机
    AT+LADDR####=>地址设为####
    AT+PIN@@@ =>密码设为@@@@

注意:发送AT指令需要在后方加上 \r\n

二,串口2的中断配置

 //函数功能:中断服务函数将接收数据保存
 void USART2_IRQHandler(void)
 {
u8 c;
if(USART2->SR & 1<<5)
 {
	c=USART2->DR;//清除sr标志位
	if(USART2_RX_FLAG==0)
	{
		if(USART2_RX_CNTCR1|=1<<0;//使能定时器4
			TIM4->CNT=0;
		}
		else
		{
			USART2_RX_FLAG=1;
		}
	}
}
}

三,打印接收数据到串口1

将输出重定向编写好,便可以通过printf函数打印接收数据

    printf("USART2_RX_BUFF=%s\r\n",USART2_RX_BUFF);

你可能感兴趣的:(stm32学习笔记,蓝牙模块,stm32)