datasheet

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

2019-07-10来源: eefocus关键字:STM32  低功耗  蓝牙模块

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


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

}



关键字:STM32  低功耗  蓝牙模块

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic467313.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32小白入门(第九天)-------温湿度模块
下一篇:STM32小白入门(第七天)-------定时器

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32使用FreeRTOS中的链表创建节点与列表项

使用了STM32F103的FreeRTOS库来创建一个列表,其实FreeRTOS的list中链表是双向的循环链表,为了简单介绍,我直接说是列表了。 芯片使用的是GD32F103CBT6,该芯片兼容ST的库,不影响使用效果。 以下代码不全,仅提供思路,如有不足,请给我留言。第一步先定义变量,初始化列表及列表项nodeDevice node_t; //节点数据nodeDevice * pNode; //节点指针 xList list_t; //列表#define pList ((xList *) &list_t) //列表指针 xListItem item_t; //列表
发表于 2019-07-18

FreeRTOS学习笔记——基础知识与移植(STM32F103)

添加文件打开基础工程,新建分组FreeRTOS_CORE 和FreeRTOS_PORTABLE,然后向这两个分组中添加文件,如图2.2.1.4 所示:分组FreeRTOS_CORE 中的文件在什么地方就不说了,打开FreeRTOS 源码一目了然。重点来说说FreeRTOS_PORTABLE 分组中的port.c 和heap_4.c 是怎么来的,port.c 是RVDS 文件夹下的ARM_CM3 中的文件,因为STM32F103 是Cortex-M3 内核的,因此要选择ARM_CM3中的port.c 文件。heap_4.c 是MemMang 文件夹中的,前面说了MemMang 是跟内存管理相关的,里面有5 个c 文件:heap_1.c
发表于 2019-07-18
FreeRTOS学习笔记——基础知识与移植(STM32F103)

STM32CubeMX+FreeRTOS实验---使用两个实例,共用一个task

, 0, 128);  LED2FlashHandle = osThreadCreate(osThread(LED2Flash), NULL);只是一个定义osThreadDef只是一个定义,把相关的内容绑在一起,不是函数。osThreadCreate才是一个函数。第二个参数就是*argument,对应StartLEDFlashTask函数的输入参数。因此在osThreadDef之前加入code。/*import user code,may be changed by stm32cubeMX*//*take attention */    uint16_t led1pin,led2pin
发表于 2019-07-18
STM32CubeMX+FreeRTOS实验---使用两个实例,共用一个task

stm32 FreeRTOS中如何创建任务

#include "config.h"#include "global.h"#include "stdio.h"#include "PC.h" #include "FreeRTOS.h"#include "task.h"#include "list.h" void vLED1Task(void *pvParameters){ while(1) { GPIO_Reverse (); vTaskDelay(1000/portTICK_RATE_MS); }}void
发表于 2019-07-18

STM32CubeMX学习笔记——FreeRTOS_任务挂起与继续

Githubhttps://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/FreeRTOS/Class02_SuspendResume简介任务挂起与继续的作用,用于暂停运行某些任务与继续运行某些任务。就像用视频播放器看电影的播放按键与暂停按键一样简单。在STM32CubeMX上配置FreeRTOS非常的简单,几乎不需要做任何操作,只需要勾选移植FreeRTOS就成功了,关于在非Cube上的RTOS配置文件内的相关内容,也在下方的Configuration栏中给好了所有的配置都可以在这里完成任务创建有别于在没有使用Cube下的创建方式,在Cube
发表于 2019-07-18
STM32CubeMX学习笔记——FreeRTOS_任务挂起与继续

STM32 RTOS系统 学习笔记(一)

基本概念               RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。       在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
发表于 2019-07-18
STM32 RTOS系统 学习笔记(一)

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved