iPhone4s一个重要革新是集成了蓝牙4.0(BT4.0),这是双模蓝牙,支持低功耗,简称BLE,关于蓝牙的方面,可以直接到官网下些文件来了解.
今天对BLE作一简单的说明,好让各位明白用iPhone4s大致是怎么控制到PC的,BLE中有多种角色,其中两种是Central和Peripheral,相当于主和从的意思,一个Central可以连接多个从,主从之间可以双向通信,手机是Central.
为实现标题所言的功能,首先给在iphone4s写一个app,让它产生一个键盘的UI,并且在键按下后可以通过BLE将按下的键发送给Peripheral.至于如何写这么一个app,请移步百度搜索.
在Peripheral一边可以接收到这个键值,之后要通过USB发给PC,这一步就像使用USB键盘一样,使用CC2540会比较容易实现这一环节,因为它自有USB接口,且有TI已经实现的USB HID协议.在BLE-stack 1.1a版本当中,可以找到HIDDemo.eww这一例程,它原本是Central,可以再连接一个BLE键盘,这里以它为原型作更改,利用USB的部分,改变BLE角色,使之成为Peripheral,可以和手机连接.
这个想法已经实现,现在讲个大概:
给工程添加peripherel库"ble_single_chip_slave_pm_off.lib"
移除工程中现有的central.c/.h文件
增加文件peripheral.c/.h, 路径在"Projects\ble\Profiles\Roles"
增加文件simpleGATTprofile.c/.h, 路径在"Projects\ble\Profiles\SimpleProfile"
修改peripheral.c中updateReq.intervalMin = gapRole_MinConnInterval-20;
与苹果连接时必须如此设置.
修改simpleGATTprofile.c中Characteristic 1 Value为数组.
修改相应的读写回调函数
修改hidapp.c文件
增加函数simpleProfileChangeCB,并在些函数中实现对于接收到的按键的处理.将字发送到USB.
如果大家有兴趣,可以到以下网址寻找资源或联系我.
http://dl.dbank.com/c040eraaob
jordum@szrfstar.com Jordum Cheung
1.1a版本协议下载地址:
http://dl.dbank.com/c040eraaob
|