![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
低功耗蓝牙 cc2541
happygrilclh
物联网
展开
-
关于BLE广播、扫描和连接事件
1.广播事件通用广播:最常用的广播方式,可以被扫描,接收到连接请求时可以作为从设备进入一个连接。定向广播:针对于快速建立连接的需求,定向广播会占满整个广播信道,数据净荷只包含广播者和发起者地址,发起者收到发给自己的定向广播后,会立即发送连接请求。不可连接广播:广播数据,而不进入连接状态。可发现广播:不可连接,但可以响应扫描。BLE广播间隔:是指两次广播时间之间的最小时间间隔,一般取值范...转载 2020-04-23 16:30:20 · 3566 阅读 · 0 评论 -
蓝牙的配对和连接的建立过程
转载:http://blog.csdn.net/dxdxsmy/article/details/9223455蓝牙的建立过程是一个复杂的过程,即使有过相当一段工作和使用经验的人,如果不仔细去了解还是理解不全。平时我们用蓝牙耳机听音乐,和不同的设备共享文件,打电话等,都有一个配对--连接--传输数据的过程。配对,其实就是一个认证的过程。为什么不配对便无法建立连接?转载 2017-07-24 19:50:04 · 1423 阅读 · 0 评论 -
蓝牙知识【协议栈简图】 【 UUID解析 】 【属性、Characteris、描述符和Service以及profile的关系】【蓝牙无线通道】【缩写词】
转自:http://blog.csdn.net/chengdong1314/article/details/52796086协议栈简图UUID解析摘录于:清风电子的《手把手教你用蓝牙:蓝牙LED任务读写原理任务详解.pdf》蓝牙Service、属性、Characteristic、描述符以及profile的关系下面内容摘录于:清风电子的《手把手转载 2017-07-24 20:35:00 · 3279 阅读 · 0 评论 -
GATT Profile 简介
转自:https://race604.com/gatt-profile-intro/GATT Profile 简介15 JULY 2015 on Android, Bluetooth网上关于讲解 BLE 的内容比较少,看到这篇文章写的非常详细 Introduction to Bluetooth Low Energy,作为 BLE 的入门时介绍是非常合适的。本文主要翻译了一下这篇文章转载 2017-07-24 22:24:51 · 373 阅读 · 0 评论 -
Android 上的低功耗蓝牙实践
转自:https://race604.com/android-ble-in-action/我今天分享的主题是 Android 上低功耗蓝牙的实践。这个主题比较小众。我在过去的一年多的时间里,主要是在做低功耗蓝牙相关的开发。接触过程中发现,BLE 的开发和通常的 Android APP 的开发有点不一样,这里需要访问硬件资源,而且涉及到一些协议相关的内容,而且这方面的资料也比较少。今天我从 An转载 2017-07-24 22:37:46 · 1426 阅读 · 0 评论 -
CC2541 BLE源码阅读知识积累之外设从机Peripheral工作模式
转自:http://blog.csdn.net/zhjr1220/article/details/9416761阅读的源代码:核心主要是位于BLE/project/SimpleBLEPeripheral部分阅读的参考文档:TI_BLE_Software_Developer's_Guide.pdf,BLE_CC2540_DeepDive_Training_2011.pdf,TI_转载 2017-07-25 08:22:42 · 723 阅读 · 0 评论 -
低功耗蓝牙cc2541学习笔记之无线通信- 分析SimpleBLEPeripheral_Init()函数
/*SimpleBLEPeripheral初始化的工作:1.广播数据设置2.配对数据设置3.Initialize GATT attributes (加服务)4.Setup the SimpleProfile Characteristic Values(设置特征值)5.注册回调函数6.设置事件*/SimpleBLEPeripheral_Init(){ /原创 2017-07-25 10:51:11 · 3186 阅读 · 0 评论 -
【BLE4.0】CC254x-修改广播时间
转载:http://blog.csdn.net/zhuangjitongxue/article/details/49805595一、实验目的1、本篇介绍如何实现任何设定广播时间的方法;二、概述1、限制广播:在配置为限制广播的模式下,可以广播一段时间后不再广播或广播一段时间后间隔一段时间再重新广播;2、普通广播:在配置为普通广播的模式下,会一直广播转载 2017-08-09 20:20:25 · 662 阅读 · 0 评论 -
低功耗蓝牙BLE之修改广播间隔等参数
转载:http://blog.csdn.net/zzfenglin/article/details/51166830发现模式 (Discoverable Mode)低功耗蓝牙的发现模式主要分为有限可发现模式和普通可发现模式,TI的CC2540和CC2541的工程中发现模式具体定义在“components/ble/include”目录下的“Gap.h”文件中,如下所示:/转载 2017-08-09 20:39:58 · 2006 阅读 · 0 评论 -
低功耗蓝牙BLE之连接事件、连接参数和更新方法
转自:http://blog.csdn.net/zzfenglin/article/details/51304084连接事件在一个连接当中,主设备会在每个连接事件里向从设备发送数据包。一个连接事件是指主设备和从设备之间相互发送数据包的过程。连接事件的进行始终位于一个频率,每个数据包会在上个数据包发完之后等待 150μs 再发送。连接间隔决定了主设备与从设备的交互间隔转载 2017-08-10 19:58:38 · 698 阅读 · 0 评论 -
BLE 协议栈之ibeacon广播包羞涩初探
转自:http://blog.csdn.net/xiaoleiacmer/article/details/43308699Ibeacon数据定义:一小片数据段广播信息。它不需要配对。数据包括周围环境温度,位置信息,自身的感应信息。广播功率设定#defineLL_EXT_TX_POWER_MINUS_23_DBM 0#defineLL_EXT_TX_POWER_MIN转载 2017-08-18 00:23:10 · 567 阅读 · 0 评论 -
添加服务,属性列表不显示添加的服务?
在做添加服务的时候,手机端app(BLE TOOL)显示属性列表不显示添加的服务。查找问题的顺序:1. 查看任务初始化的时候,有没有注册服务?/ CLH GATT Profile 添加服务 ClhProfile_AddService(GATT_ALL_SERVICES); //读写的回调函数如果注册了,查看第二步,2. 进入ClhProfile_AddService()原创 2017-08-13 17:09:02 · 431 阅读 · 0 评论 -
【BLE】CC2541之添加特征值
转载:http://blog.csdn.net/feilusia/article/details/48235691版权声明:喝水不忘挖井人,转载请注明出处,897503845@qq.com。本篇博文最后修改时间:2017年03月21日,15:32。一、简介本文以SimpleBLEPeripheral工程为例,介绍如何添加一个可读、可写、可通知、20字节长的特征值转载 2017-07-29 08:14:18 · 1080 阅读 · 0 评论 -
理解Profiles, Services,Characteristics,UUID等值
理解协议栈中,Profiles, Services,Characteristics,UUID等值的概念。GATT 事务是建立在嵌套的Profiles, Services 和 Characteristics之上的,如下图所示: Profile Profile 并不是实际存在于 BLE 外设上的,它只是一个被 Bluetooth SIG 或者外设设计者预先定义的 Service原创 2017-07-26 19:32:34 · 5905 阅读 · 2 评论 -
蓝牙主机和从机之间传输数据说明
转自:http://blog.sina.com.cn/s/blog_869234dc0102uxl3.html在第一部分我们了解了几个专业词汇,接下来我们再了解一下数据的发送一、数据发送在BLE协议栈中进行数据发送分为两个方面,一个事GATT的client主动向service发送数据,另一个是GATT的service主动向client发送数据我们暂且简单的分为主机向从机发送转载 2017-07-29 09:40:46 · 18311 阅读 · 0 评论 -
cc2541 设置蓝牙名称为中文
我使用的芯片CC2541, 本人比较矫情,就是想设置中文的蓝牙名称,然后百度了一下,发现网上改蓝牙名称的资料很少,价值也不高。有人说,将中文转成对应的utf-8格式,我试了一下,发现不行。后来听一位博友说,用URL编码的方法,虽然我不知道什么是URL编码,但抱着试一试的态度,发现竟然实验成功,很感谢这位博友。http://www.convertstring.com/zh_CN/EncodeDe原创 2017-03-12 11:14:52 · 2491 阅读 · 0 评论 -
学习cc2541的方法
学习任何东西的途径,进官网。下载cc2541的协议栈:http://www.ti.com/tool/BLE-STACK安装协议栈之后,打开文件路径:所有资料都有,学习cc2541,就自带的这些资料足够了。关于osal 系统, 每层协议的介绍,函数的介绍,都很全面。不需要博客去学习。用户手册:http://processors.wiki.ti.com/...原创 2019-09-17 14:24:03 · 1527 阅读 · 1 评论 -
低功耗蓝牙cc2541学习笔记之协议栈工作原理
转载 2017-07-24 09:59:55 · 968 阅读 · 0 评论 -
低功耗蓝牙cc2541学习笔记之协议栈简介
转载 2017-07-24 09:52:35 · 748 阅读 · 0 评论 -
低功耗蓝牙cc2541学习笔记之UART-4-协议栈uart接受数据实验
转载 2017-07-23 22:41:04 · 421 阅读 · 0 评论 -
蓝牙协议栈主从机之间发送数据
蓝牙协议栈主从机之间发送数据,先讲主机给从机发送数据。然后是从机给主机发送数据。1.Initialize GATT attributes (初始化GATT属性表)SimpleProfile_AddService( GATT_ALL_SERVICES ); // Simple GATT Profile---->2.注册属性列表 and 回调函数 simpleProfileCBs原创 2017-07-29 17:52:27 · 4349 阅读 · 0 评论 -
蓝牙的OSAL框架介绍
OSAl是系统抽象层(Operating System abstraction layer)的缩写,负责所有任务函数的调度,消息事件的管理等。HAL 是硬件抽象层(Hardware abstraction layer)的缩写,相当于底层硬件驱动,例如led,按键,ADC,UART,LCD等均已封装成API函数,在OSAL的任务函数中调用即可。原创 2017-07-20 20:41:41 · 1412 阅读 · 0 评论 -
cc2541之Notification
从机给主机发送数据有两种方式:第一种:通过GATT_Notification()这个函数来通知主机。第二种:通过GATTServApp_ProcessCharCfg()这个函数通知主机。简介这两种方式,一、GATT_Notification():在从机代码中使用,由从机主动通知,且不需要主机发出请求和回应。例如,在需要从机给主机发送数据的地方,直接使用这个函数即可。void GUA原创 2017-07-29 23:20:58 · 1868 阅读 · 0 评论 -
从机添加UUID时候,不能接受主机数据的原因分析。
在做添加UUID程序的时候,每个步骤都写的规范,没有问题,手机端也显示了这个特征值值,属性,可读,可写,可通知也都对。但是,通过ble tool工具去给从机写数据,从机就是收不到数据,后来找到原因,才发现,我写属性表的时候,给Characteristic Value 6的permissions给的值是GATT_PERMIT_AUTHEN_READ ,所以,从机一直就接受不到主机发过来的数据,然后改原创 2017-07-30 00:03:43 · 573 阅读 · 0 评论 -
cc2541工程代码,main函数初始化讲解
写嵌入式程序,无论是那款mcu,硬件初始化,都和下图中硬件初始化的过程,大同小异。这都是标准。硬件初始化顺序:1.( 硬件初始)Initialize hardware : 主要工作,设置时钟2.Initialize board I/O3.(硬件抽象层初始化)Initialze the HAL driver :主要工作,外设初始化 gpio ,spi, iic, uart,adc原创 2017-07-20 21:49:57 · 1076 阅读 · 0 评论 -
蓝牙4.0BLE抓包(三) – 扫描请求和扫描响应
转自:http://www.cnblogs.com/aikm/p/5144209.html版权声明:本文为博主原创文章,转载请注明作者和出处。 作者:强光手电[艾克姆科技-无线事业部]1. 扫描请求和扫描响应 广播包含扫描请求SCAN_REQ和扫描响应SCAN_RSP。 扫描请求:由链路层处于扫描态的设备发送,链路层处于广播态的设备接收。 扫描响应:由链路层转载 2017-07-30 12:48:30 · 2245 阅读 · 0 评论 -
蓝牙4.0BLE抓包(二) – 广播包解析
转自: http://www.cnblogs.com/aikm/p/5022502.html版权声明:本文为博主原创文章,转载请注明作者和出处。 作者:强光手电[艾克姆科技-无线事业部] 在使用EN-Dongle捕获和解析广播包之前,我们先了解一下BLE报文的结构,之后,再对捕获的广播包进行分析。在学习BLE的时候,下面两个文档是极其重要的,这是SIG发布的蓝牙的核心协议和核心协议转载 2017-07-30 12:42:24 · 3377 阅读 · 1 评论 -
低功耗蓝牙cc2541学习笔记之LED-1
如果裸机跑led灯程序,步骤很简单:1,设置io引脚为输出,2,给io给值1 或 0。如果带OSAL系统,如何操作led,下面将详细讲,我用的是TI的蓝牙4.0BLE协议栈BLE-CC254x-1.4.0。1,进入函数/* Initialze the HAL driver */HalDriverInit(),函数里是cc2541芯片带的外设的初始化,可以看到如果满足两个宏定义#if原创 2017-07-22 14:34:53 · 1129 阅读 · 0 评论 -
回调函数
转自:回调函数 在看LWIP时,见到用回调函数,再看某老外公司OPC源代码时,见到用回调函数。看我国内某些代码(我公司软件等)时没用到。于是,我对回调函数产生了很大的好奇。以前,我写VC程序时用到过回调函数,但是没有用C语言来使用。最近,看到国外大量的经典代码中广泛使用了回调函数(LWIP、某两个公司的OPC程序等),都是C语言来实现的,而不是VC windows程序中别人实现自己使用转载 2017-07-31 18:26:04 · 276 阅读 · 1 评论 -
回调函数
作者:no.body链接:https://www.zhihu.com/question/19801131/answer/27459821来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。什么是回调函数?我们绕点远路来回答这个问题。编程分为两类:系统编程(system programming)和应用编程(application progra转载 2017-07-31 18:59:33 · 245 阅读 · 0 评论 -
低功耗蓝牙cc2541学习笔记之LED-2
文章转自:http://blog.csdn.net/anobodykey/article/details/8486578InitBoard()看注释上说是初始化板子上的I/O资源,进入到该函数实现体中,void InitBoard( byte level ){ if ( level == OB_COLD ) { // Interrupts off osal转载 2017-07-22 15:49:29 · 1257 阅读 · 1 评论 -
CC2541之回调函数代码解析
转自:香瓜博客回调函数,解析代码:一 、定义一个 “ 成员为函数指针 ” 的结构体1 )定义一个函数指针/*** Central Event Callback Function*/typedef void (*pfnGapCentralRoleEventCB_t)(gapCentralRoleEvent_t *pEvent //!< Pointer to event structu转载 2017-07-31 20:47:22 · 784 阅读 · 0 评论 -
cc25441 外设IO引脚映射图
原创 2017-07-23 15:41:22 · 834 阅读 · 0 评论 -
低功耗蓝牙cc2541学习笔记之UART-1-协议栈函数功能说明
协议栈UART实验打开串口功能HAL_UART=TRUEHAL_UART_USB=FALSE串口操作定义在hal_uart.h 头文件中/** Initialize UART at the startup* 初始化UART*/extern void HalUARTInit ( void );/** Open a port based on the c转载 2017-07-23 11:51:40 · 700 阅读 · 0 评论 -
低功耗蓝牙cc2541学习笔记之UART-2-驱动uart
在 CC2541 中,USART0 和 USART1 是串行通信接口,它们能够分别运行于异步 USART 模式或者同步 SPI 模式。两个 USART 的功能是一样的,可以通过设置在单独的 IO 引脚上。查看 CC2541 的 datasheet 可知:UART0 对应的外部设备 IO 引脚关系为: P0_2 ------ RXP0_3 ------ TXUART1原创 2017-07-23 18:03:45 · 1506 阅读 · 0 评论 -
低功耗蓝牙cc2541学习笔记之UART-3-协议栈uart发送 实验
转载 2017-07-23 22:30:56 · 397 阅读 · 0 评论 -
CC2541-修改蓝牙名称和mac地址
使用的蓝牙芯片是CC2541, 本文章介绍修改蓝牙名称和蓝牙MAC地址的方法。修改蓝牙名称:在数组scanRspData[ ]里,存放的就是蓝牙名称,你可以自己设置。GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData ); 修改蓝牙MAC地址:蓝牙的MAC是全球唯一的,在F原创 2017-03-12 10:57:40 · 2561 阅读 · 0 评论