STM32小白入门(第八天)-------低功耗蓝牙模块

蓝牙是现在智能生态下运用的最多的,比如智能手环,智能手表,智能家居也离不开它的身影。

我用的是,CC2541低功率蓝牙模块4.0 BLE 串口 带底板直排针 无线蓝牙模块

蓝牙是无线短距离传输的一种,有79个频段,工作频段范围是2402~2480MHz,通常传输距离为10米,经过10多年的快速发展,蓝牙技术已经非常成熟,广泛的应用在各类产品,特别是数码类产品。主要运用在手机,电脑,蓝牙耳机蓝牙音响,蓝牙手环,智能家驹等等。

蓝牙优点:

与蓝牙通讯技术工作频段类似的WiFi无线网络技术相比,蓝牙通讯技术应用于各种设备上有省电,低功耗,传输稳定,小巧,安全方面等优势。

STM32小白入门(第八天)-------低功耗蓝牙模块_第1张图片

STM32小白入门(第八天)-------低功耗蓝牙模块_第2张图片

STM32小白入门(第八天)-------低功耗蓝牙模块_第3张图片

二、蓝牙模块有两种通信模式

1、AT指令模式

STM32小白入门(第八天)-------低功耗蓝牙模块_第4张图片

STM32小白入门(第八天)-------低功耗蓝牙模块_第5张图片

STM32小白入门(第八天)-------低功耗蓝牙模块_第6张图片

2、数据透传模式

STM32小白入门(第八天)-------低功耗蓝牙模块_第7张图片

STM32小白入门(第八天)-------低功耗蓝牙模块_第8张图片

STM32小白入门(第八天)-------低功耗蓝牙模块_第9张图片

三、AT指令程序设计

1、设置模块的名字

//发送字符串
void usart3_send_str(uint8_t *pbuf)
{
	while(*pbuf)
	{
		//发送数据
		USART_SendData(USART3,*pbuf++);
		
		//一直检查发送缓冲区是否为空,若为空,则为SET;不为空,则为RESET,也代表说数据还没有发送完成,在发送过程当中
		while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);
	
	}
}

void ble_set_config(void)
{
	//设置好模块的名字
	
	usart3_send_str((uint8_t *)"AT+NAMEStudent.Lin\r\n");
	
	delay_ms(500);
	
	
	//获取模块的地址信息,因为通过手机搜索的时候,有些时候无法显示到模块的名字,只能显示到模块的地址信息

	usart3_send_str((uint8_t *)"AT+LADDR\r\n");
	
	delay_ms(500);
}
//每触发一次中断,都隔1.04ms
void USART3_IRQHandler(void)
{
	uint8_t d;
	
	OSIntEnter();    
	//检查是否接收到串口数据
	if(USART_GetITStatus(USART3,USART_IT_RXNE)==SET)
	{
		//添加用户代码
		d = (uint8_t)USART_ReceiveData(USART3);
		Ble_Buff[count++] = d;
		//通过串口1且波特率为115200bps的观察,发送一个字节80us
		printf("%c",d);
		if(Ble_Buff[count-1] == '\n')
		{
			count = 0;
			Ble_Flag = 1;
		}
		//告诉CPU,这里已经完成一次接收数据中断,可以进行下一次的数据接收
		USART_ClearITPendingBit(USART3,USART_IT_RXNE);
	}
	OSIntExit(); 
}


你可能感兴趣的:(STM32)