×
单片机 > 其他资讯 > 详情

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

发布时间:2020-06-19 发布时间:
|

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


我用的是,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(); 

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
电磁兼容技术的五个应用实例介绍