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

利用STM32配置一块蓝牙模块

1.蓝牙模块配置原理

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

串口2给蓝牙发送AT指令

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

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

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

硬件引脚连接

STM32引脚蓝牙模块引脚
USART2_RXTX
USART2_TXRX
5VVCC
GNDGND

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_CNT<USART2_RX_LEN)//判断次数是否小于200
		{
			USART2_RX_BUFF[USART2_RX_CNT]=c;//一次一次循环赋值
			USART2_RX_CNT++;
			TIM4->CR1|=1<<0;//使能定时器4
			TIM4->CNT=0;
		}
		else
		{
			USART2_RX_FLAG=1;
		}
	}
}
}

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

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

    printf("USART2_RX_BUFF=%s\r\n",USART2_RX_BUFF);
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值