愿你出走半生,归来仍是少年

^_^

怀揣梦想,永不放弃

导航

随笔分类 -  蓝牙4.0学习之路

记下蓝牙4.0学习过程中的点滴,推敲TI工程师的代码编写技巧,为我所用。
android BluetoothAdapter蓝牙BLE扫描总结
摘要:1.android 4.3.1(Build.VERSION_CODES.JELLY_BEAN_MR2)增加的startLeScan(callback)方法,官方在5.0之后不建议使用,实测此方法,4.3至目前6.0版本还是很稳定的,毫秒级无限返回蓝牙数据,很稳定,就是很耗电; 2.android5. 阅读全文

posted @ 2018-10-23 01:31 Jeffrey.Downhouse 阅读(500) 评论(0) 推荐(0)

BLE和2.4G实现通信
该文被密码保护。

posted @ 2018-04-29 02:20 Jeffrey.Downhouse 阅读(716) 评论(0) 推荐(0)

BLE 信道
摘要:广播信道频点的选择原则上是为了远离诸如WiFi接入点的严重干扰。这些接入点通常选择802.11信道中的3个:信道1、6、11。这几个信道的中心频率分别为2412/2437/2462,宽度大概为20MHZ。这意味着信道1占据2402-2422,信道6占据2427-2447,信道11占据2452-247 阅读全文

posted @ 2016-05-31 19:19 Jeffrey.Downhouse 阅读(1403) 评论(0) 推荐(0)

CC2540中的电压检测
摘要:/** * Battery level conversion from ADC to a percentage: * * The maximum ADC value for the battery voltage level is 511 for a * 10-bit convers... 阅读全文

posted @ 2015-12-28 16:58 Jeffrey.Downhouse 阅读(507) 评论(0) 推荐(0)

unsigned char 类型
摘要:在蓝牙4.0的开发中,很多数据类型都用到了 unsigned char ,我觉得用这个类型的一个原因是相比较于整型,它占的空间更少。比如:unsigned char a = 1; // 占1个字节int a = 1; // 占2个字节--------------------------------... 阅读全文

posted @ 2015-10-14 17:15 Jeffrey.Downhouse 阅读(1328) 评论(0) 推荐(0)

温故而知新
摘要:1. 在外围设备和中心设备建立连接的过程:a) 从设备发射广播(广播中包含从设备的服务的 UUID 列表);b) 主设备扫描,让主设备扫描只是一个简单的 API ;c) 如果主设备扫描到设备后(正是根据从设备的广播而发现的,此时是没有建立连接但是主设备和从设备通信了),就会触发一个设备发现的事件;d... 阅读全文

posted @ 2015-09-02 18:47 Jeffrey.Downhouse 阅读(177) 评论(0) 推荐(0)

ADC 电源监测
摘要:我能为别人做点什么?这是我最近在思考的问题。看了 ADC 电源监测代码,觉得对 ADC 的理解不到位,代码中有很多部分都不懂。如:1. 为什么初始化的时候管脚设置为输出?2. ADC 采集到的值是什么样的值,有范围吗?3. 为什么需要 ADC,具体阐述模拟量和数字量?带着这些问题先看一遍芯片手册。看... 阅读全文

posted @ 2015-08-26 18:22 Jeffrey.Downhouse 阅读(330) 评论(0) 推荐(0)

读取 RSSI
摘要:在 TI 给的 SimpleBleCentral demo 里,读取 RSSI 的原理是:按 CC2540EM 的下键,然后调用 GapCentralRole 里的函数,启动定时器,不断向 OSAL 层发送 Message ,然后调用 HCI 层的 CMD 读取 RSSI ,最后将值传回 APP 层... 阅读全文

posted @ 2015-08-23 19:39 Jeffrey.Downhouse 阅读(1637) 评论(0) 推荐(0)

函数指针的一个demo
摘要:#include typedef void (*fun_cb)(int a, int b);static fun_cb exe_fun_cb;void fun_cb_input(int, int);void setUp_cb(fun_cb);void main(){ setUp_cb(... 阅读全文

posted @ 2015-08-21 13:58 Jeffrey.Downhouse 阅读(217) 评论(0) 推荐(0)

RF 测试代码体会
摘要:这里的需求是完成一个cc2540 RF测试程序。实现功能为开发板按键控制 RF 发射频率的改变。首先被告知要用PTM来做这个测试程序,然后我去了PTM的介绍文档,地址为http://processors.wiki.ti.com/index.php/PTM经过阅读后知道PTM就是为了测试而诞生的,它主... 阅读全文

posted @ 2015-08-21 11:41 Jeffrey.Downhouse 阅读(1192) 评论(0) 推荐(0)

编程小技巧——对传入参数的检查
摘要:头文件定义部分:#define HAL_LED_1 0x01#define HAL_LED_2 0x02#define HAL_LED_3 0x04#define HAL_LED_4 0x08#define HAL_LED_ALL (HAL_LED_1 | HAL_LED... 阅读全文

posted @ 2015-08-21 09:28 Jeffrey.Downhouse 阅读(443) 评论(0) 推荐(0)

蓝牙协议栈中的 OSAL
摘要:蓝牙协议栈里的操作系统叫做 OSAL(操作系统抽象层)。它并非一个真正意义上的操作系统,它只是实现了操作系统的一些功能,如任务切换、内存管理。OSAL 产生的根源:基于蓝牙协议栈开发的产品,实际上是一个应用层的应用程序,而每个应用程序可以看成是一个任务,为了实现多个任务的切换、同步、互斥等,这时就需... 阅读全文

posted @ 2015-08-13 19:24 Jeffrey.Downhouse 阅读(650) 评论(0) 推荐(0)

蓝牙协议栈中的 函数指针
摘要:蓝牙4.0对事件处理的方式为:把所有的事件放在一个事件表中,每个事件都有优先级,协议执行的整个过程为轮询事件表,响应事件。而事件在时间表中的存储方式为函数指针。下面结合代码部分:定义函数指针:typedef unsigned short (*pTaskEventHandlerFn)( unsigne... 阅读全文

posted @ 2015-08-12 13:49 Jeffrey.Downhouse 阅读(628) 评论(0) 推荐(0)

运筹帷幄之中 | 决胜千里之外