您的位置:首页 > 其它

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

2018-03-21 09:12 183 查看
蓝牙是现在智能生态下运用的最多的,比如智能手环,智能手表,智能家居也离不开它的身影。
我用的是,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.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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: