蓝牙是现在智能生态下运用的最多的,比如智能手环,智能手表,智能家居也离不开它的身影。
我用的是,CC2541低功率蓝牙模块4.0 BLE 串口 带底板直排针 无线蓝牙模块
蓝牙是无线短距离传输的一种,有79个频段,工作频段范围是2402~2480MHz,通常传输距离为10米,经过10多年的快速发展,蓝牙技术已经非常成熟,广泛的应用在各类产品,特别是数码类产品。主要运用在手机,电脑,蓝牙耳机蓝牙音响,蓝牙手环,智能家驹等等。
蓝牙优点:
与蓝牙通讯技术工作频段类似的WiFi无线网络技术相比,蓝牙通讯技术应用于各种设备上有省电,低功耗,传输稳定,小巧,安全方面等优势。
二、蓝牙模块有两种通信模式
1、AT指令模式
2、数据透传模式
三、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.Linrn");
delay_ms(500);
//获取模块的地址信息,因为通过手机搜索的时候,有些时候无法显示到模块的名字,只能显示到模块的地址信息
usart3_send_str((uint8_t *)"AT+LADDRrn");
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();
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』