这几天我研究了一下例程:
由于本人这次我题目是:电脑蓝牙开关。所以我自然看KEYS那个例程。
由于例程里边全是英文本人看几天终于觉悟了。写出来希望为大家扫平道路。
我下得BLE库是 BLE_CC254X_140 就是1.4截图如下
以上是各各例程的主机部分,而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函数就可以了
而回调函数基本同键盘没关系。