[原创] 【SensorTag】the fivth week:例程剖释

ddllxxrr   2014-1-19 21:39 楼主


这几天我研究了一下例程:

由于本人这次我题目是:电脑蓝牙开关。所以我自然看KEYS那个例程。

由于例程里边全是英文本人看几天终于觉悟了。写出来希望为大家扫平道路。

我下得BLE库是 BLE_CC254X_140 就是1.4截图如下

装配文件.JPG


以上是各各例程的主机部分,而Profiles子目录,就是各各应相的服务程序。

我认为是另一部分,比如按键,就可以找到按键相应的程序。

下面我把按键例程剖释下:

Key Demo:

有四个作用:
1.报告电池水平
2.报告三轴加速器状况
3.报告接近传感器情况
4.按键按下改变状况

例程用的是CCS540DK 就是keyfob主为主服务平台。有两个按钮及LED指示、buzzer蜂鸣指示等。
KeyFob used用一个ADC来读电池电量。电池的配置文件允许USB Dongle以电量的百分数读取电量。
而值放在BATTERY_LEVEL_UUID中。

三轴加速度传感器操作,SPI接口,三轴加速度传感器必须被ACCEL_ENABLER_UUID写值“01”来使能。
之后是“0100”被写入GATT_CLIENT_CHAR_CFG_UUID这后值在 ACCEL_X_UUID、ACCEL_Y_UUID、ACCEL_Z_UUID

按键操作
这个应用在HAL层注册,在HAL栓测一个键值的改变。
监视设备读键值通过SK_KEYPRESSED_UUID写“01”在GATT_CLIENT_CHAR_CFG_UUID写“00”来指示一个状态。
用“01”代表左键 02代表在右键 03代表全按

主服务key fobDemo.c
w分两部:1.OSAL谳用KeyFobAPP_Init函数,这个函数能配置接口。GAP和GAP带宽管理。它也设轩AGTT标准服务。
第2步执行START_DEVICE_EVT   在KeyFobApp_ProcessEvent函数里调用GAPROLE_StartDevice和GAPBondMgr_Register
这两个函数用来注册带宽等参数。

事件处理
在keyFobApp_processEvent中处理:
Sys_EVENT_MSG:处理OSAL消息
KFD_START_DEVICE_EVT:
KFD_ACCEL_READ_EVT:
KFD_BATTERY_CHECK_EVT:
KFD_TOGGLE_BUZZER_EVT:

在KeyFobApp_ProcesOSALmsg:中处理KEY_CHANGE



可见只要处理KEY_CHANGE函数就可以了



而回调函数基本同键盘没关系。


3eb4d9821068a4b238012fcc.jpg




http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复