
BLE协议栈
文章平均质量分 75
xiaoleiacm
asdfghjkl;
展开
-
BLE 协议栈之 主机透传
主机发送信息使用的是:bStatus_t GATT_WriteCharValue( uint16 connHandle, attWriteReq_t *pReq, uint8 taskId ); 一共三个参数: connHandle - connection to u原创 2014-12-16 12:58:33 · 5698 阅读 · 1 评论 -
BLE 协议栈 之"消息传递""事件触发"谁与争锋
BLE 协议栈中对于触发任务事件大可分为三种方式:1 通过设置一个“软件定时器”,当其溢出时触发事件。osal_start_timerEx()—osalTimerUpdate()— osal_set_event() ;2 通过调用系统消息传递机制触发事件。osal_msg_send()—osal_set_event() 3 直接调用osal_set_event()触发事件。原创 2015-02-05 16:05:04 · 4351 阅读 · 4 评论 -
BLE 协议栈 之看门狗应用
设置:看门狗控制寄存器: WDCTL.MODE[1:0] 10看门狗定时器一旦打开,将不能停止,所以在开启看门狗定时器之后,再WDCTL.MODE[1:0]写入01 ,00 将不起作用。 时钟源:32.768khz 当输入64, 512,8 192, 32768时,溢出中断分别为1.9ms,15.625ms,0.25s,and1s看门狗初始化原创 2015-01-19 22:37:31 · 2178 阅读 · 0 评论 -
BLE 协议栈之低功耗管理
BLE 协议栈中电源低功耗的管理与CC2530的模式一样,都有PM1,PM2,PM3三种低功耗状态,其中PM2在可以用定时器唤醒,在PM3中只能使用外部中断的方式才能唤醒。下面的程序实现的是在CC2541片子上使用低功耗电源管理芯片TPS62730,控制引脚在P1_0位置。 程序运行到osal_start_system();后继而运行到osal_run_system();在里面有一原创 2015-01-20 16:47:53 · 3294 阅读 · 0 评论 -
CC254x/CC2540/CC2541库函数速查
hci.h//分配内存,应用程序不应该调用这个函数.void *HCI_bm_alloc( uint16 size );//检查连接时间参数和连接时间参数的组合是否有效uint8 HCI_ValidConnTimeParams( uint16 connIntervalMin, uint16 connInterv原创 2015-03-03 12:32:47 · 7408 阅读 · 4 评论 -
蓝牙主机从机建立连接绑定过程
蓝牙主机从机建立连接绑定过程center与simplePeripheral建立连接过程center首先进行osal_init_system()初始化各个任务,SimpleBLECentral_Init->osal_set_event( simpleBLETaskId,START_DEVICE_EVT );进入SimpleBLECentral_ProcessEvent()调用 VOI原创 2015-04-14 16:01:26 · 8352 阅读 · 0 评论 -
CC2541 独立键盘中断触发
简单的小例子,两个按键引脚分别接到了P0_2 以及P1_7 引脚上,下降沿触发void KeyInit(){ /********** 按键相关设置 : P0_2 右键{ 唤醒键 }**********/ P0IFG =0; // 清除标志位 P0IF = 0; // 清除标志位 P0SEL &= (~0x04); // 设置为普通IO P0DIR &= (~0x原创 2015-05-13 13:17:33 · 2897 阅读 · 0 评论 -
打开POWER_SAVING与串口同时使用时的冲突解决
最近项目里beacon的调试涉及到电源管理以及串口的使用,瓶颈了许久许久....宏定义了POWER_SAVING之后,意味着也就打开了相关电源管理功能,在使用DMA进行串口收发时,就会出现串口无法工作的情况。开始调试的时候,依旧DMA方式使用串口,打开POWER_SAVING,注释掉协议栈中所有和POWER_SAVING相关的代码之后,会发现串口依旧无法使用。最终放弃了DMA方式,改用原创 2015-05-14 22:35:24 · 3615 阅读 · 4 评论 -
蓝牙4.0 128bit UUID
一般使用ios作为上位机时,16bit的服务UUID较为方便,而使用安卓作为上位机时,128bit的UUID更为方便,扫描速度更快!蓝牙4.0 BLE 基于128bit的服务UUID例程在官网上直接下载是有错误的,期间做了一下修正,此资源完全可用!http://download.youkuaiyun.com/detail/xiaoleiacm/8819305原创 2015-06-18 15:21:46 · 3089 阅读 · 2 评论 -
BLE 协议栈 之串口收发
曾经曾经的一篇关于串口收发的博客,是直接使用串口中断收发的,虽然这样实现了收发功能,但是对于大量数据传送的时候,就会出现数据收发不及时的情况,无意间发现了一种更为简单的方式,十分方便快捷~ BLE协议栈中对于串口收发已经封装的很彻底了,主要的函数都在NPI.c 实现了,只要调用就可以了。当然串口的配置是在NPI_InitTransport函数中,改变相应的配置是在NPI.h中。原创 2015-02-03 20:40:39 · 4676 阅读 · 0 评论 -
BLE协议栈之读取CC2541的MAC地址
CC2541MAC地址的读取 在读取蓝牙MAC地址时有一种非常简便的方法,就是直接去读寄存器里的MAC地址 ,但芯片手册上没有显示的说明出MAC地址的位置,至少是我没看出来,只是找到了这么一段话:后来查了查果然在这个位置!!! 于是可以直接读出寄存器中的值,就可以得到MAC地址了 ,这里是只读空间,网上有说直接改变MAC地址的,甚是不能理解啊!!!原创 2014-12-28 15:48:42 · 6844 阅读 · 2 评论 -
BLE协议栈之串口数据收发
看了将近一个星期的BLE了 总的来说没有TI官方的开发板子实在是痛苦了 ,平时不屑一顾的小串口结构捣鼓了将近两天的时间都没有收发正常。崩溃。。。。。好了,进入正题! 由于此次是直接开发产品,没有开发板的支持,所以串口成了必不可少的调试手段,但是由于师哥画板子的时候将串口0的引脚定义在了P1.5 和P1.4上,所以只能使用alt.2的方式进行串口设置,最后在BLE中实在是找不到如何将其设置成原创 2014-12-05 18:10:44 · 5778 阅读 · 0 评论 -
BLE 协议栈之透传从机"Write error 13" 小忧伤
从机接收主机来的数据并不像网上大部分博客说的那么简单,当然过程是很esay,如果只接收一个字节的数据而且不需要处理的话也很简单,但是涉及到多字节收发的时候,需要注意和处理的地方就很多了。我在调试透传功能时,由于没有合适的调试工具,只能引出串口看当前的数据,所以走了不少弯路,崩溃了近三天之后终于能稳定透传了。 在主机端配置好后,最大的疑惑莫过于当发送的原创 2014-12-16 13:15:36 · 3702 阅读 · 0 评论 -
BLE 协议栈之RTC时钟
BLE协议栈里有已经封装好的RTC时钟,时钟源可以是外部晶体振荡时钟也可以是内部RC时钟。The32-kHzXOSC is designed to operate at 32.768kHz and provide a stable clock signal for systems requiring time accuracy.The 32-kHz RCOS runs at 32.753k原创 2015-01-06 14:16:25 · 5156 阅读 · 0 评论 -
BLE 协议栈之框架解析
使用版本:Texas Instruments CC2540/41 v1.3.2一.BLE框架 一:所有的应用程序都是建立在GAP层和GATT层之上的二:PHY层是适应1Mbps跳频无线操作 ,但是没有2.4GHz执照 三:LL层控制射频的设备的状态,包括: standby, advertising, scanning, initiating, or connected原创 2014-12-04 14:01:00 · 4278 阅读 · 0 评论 -
BLE 协议栈之GAP与GATT层小小一瞥
Generic Access Profile (GAP)GAP 一共有四种角色:Broadcaster ,Observer,Peripheral ,Central Connection Interval (主从设备连接间隔) 最小7.5ms 最大4.0sSlave Latency (从设备延迟): 忽略主设备的应答 继续处于睡眠状态Supervision Time原创 2014-12-04 14:29:34 · 13467 阅读 · 0 评论 -
BLE协议栈之Central事件慢慢谈
BLE协议栈Central 工程中与广播连接建立的事件 最近在改写BLE协议栈,需要实现实时发现周边从设备,并建立连接,获取RSSI的功能,没什么难度,但着实将各个事件好好看了一遍。曾经看到一位大神说相同的任务使用事件触发方式,不同的任务使用消息传递方式。冥冥之中突然来了感觉~ BLE进行广播和建立连接的事件主要实现是在simpleBLECentralEventC原创 2015-01-09 15:15:14 · 7224 阅读 · 4 评论 -
BLE协议栈之OSAL初探
OSAL (Operating System Abstraction Layer) 一,Task Initialization 二,Task Events and Event Processing 1 事件标志是16bit的值,(系统保留事件标志 0x8000 被SYS_EVENT_MSG使用)。 为了使用SOAL ,在main函数的最后需要名原创 2014-12-04 14:12:48 · 2209 阅读 · 0 评论 -
BLE 协议栈之ibeacon广播包羞涩初探
Ibeacon 数据定义:一小片数据段广播信息。它不需要配对。 数据包括周围环境温度,位置信息,自身的感应信息。 广播功率设定 #defineLL_EXT_TX_POWER_MINUS_23_DBM 0#defineLL_EXT_TX_POWER_MINUS_6_DBM 1#defineLL_EXT_TX_POWER_0_DBM原创 2015-01-30 16:52:45 · 7816 阅读 · 2 评论 -
BLE协议栈之蓝牙4.2版本
新版规格支持IP连接并提供领先业界的隐私保护与速度,奠定蓝牙为物联网无线技术标准之地位蓝牙技术联盟宣布本周起正式推出蓝牙核心规格4.2版本。4.2版本的主要更新项目包括隐私权限保护的改善与速度的提升,一个支持IP连接的配置文件也即将核准。蓝牙4.2版本将为开发人员、OEM代工业者及整个业界带来新商机,为消费者营造更美好的用户体验,并打造前所未有的使用案例。蓝牙技术联盟执行总监Mark Po转载 2014-12-08 20:30:58 · 6556 阅读 · 0 评论 -
玩转Light Blue之添加设备信息
项目终于快结项了,闲下时间重新掰回light blue 。Light Blue中的ADVERTISEMENT DATA,的所有信息都定义在 advertData和scanRspData中,只是获取的方式不一样罢了,一个是在广播时获取,一个是得到的扫描信息。在Light Blue扫描到外设时,会出现0 Server,1 Server 。。。 是因为advertData中的添加服务项在原创 2015-05-29 20:46:00 · 2959 阅读 · 0 评论