此功能使用的是SDK V3.3.0.0版本,配套使用泰凌驱动SDK 开发⼿册进行开发《Telink B91 BLE Single Connection SDK 开发指南》。本来是打算改写原有的 B91_Moudle 这个demo 将另一个B91驱动的SDK中usb cdc demo合并进来 实现usb cdc加蓝牙透传功能,但是由于telink给出的driver sdk 和 ble single sdk版本不同,接口变化加上指导手册的缺失只能作罢。
1 驱动⽬录结构
和b91 driver sdk 目录大体一致 但是vendor中的application挪到了根目录下,demo存放在vendor目录下还是保持一致的
2 新工程搭建
2.1 创建新配置
右键sdk根目录点击Properties,file选项里也可以找,但是当多个sdk存在在一个workspace里时,可能会显示其他sdk的选卡,
另外ide的多窗口是需要多个workspace的,所以理想的开发方式是为每个sdk建立单独的workspace
在C/C ++ Build -> Setting里,点击Manage Configurations,点击New来新建基于当前sdk的工程,比较方便的是可以直接复制demo的配置,建立完成后就可以在编译选项里看到新添加的配置
2.2 配置新配置文件过滤
再在vendor下创建和配置名相同的文件夹,因为复制了demo 的配置,可以自动识别,这时候就有一个比较坑的一点新添加的文件夹和复制的demo文件夹都会在同一个配置里
这需要在在C/C ++ General -> Paths and Symbols里,点击Sources Location里点击右侧的Edit Filter选卡,添加排除文件夹,新建的配置需要把复制配置的目录添加进去,比较麻烦的是,每添加一个新的配置都需要在所有配置里添加一下过滤
到此新的configuration就新建好了,可以在编译选项切换正常编译了
3 开发体验
本来是打算将b91 driver sdk下的usb cdc demo(usb虚拟串口demo)和b91 ble sdk下的b91 module(蓝牙串口透传)两个工程合并为一个demo(蓝牙usb串口透传),结果一堆问题,先是两个sdk的目录结构变动,导致编译文件重复,这些都好解,后面发现driver sdk和ble sdk的驱动版本不一致,接口都改了,想了想也没问题,那就一葫芦画瓢,自己写接口调用ble sdk 内的驱动接口,结果后面使能了usb,usb cdc的宏定义,官方的驱动文件内还能出现找不到调用的情况,检查了头文件引用,也找不到下手的地方,实在不行,只能放弃。在做可能不是测评了,是开发了。
当然demo功能工作正常,透传的话手机ble调试发送,串口这里可以接收,这些也没啥就不贴图了。
其实接触到telink时间也不短,因为做智能家居是我的第一份工作,之前是比较早的TLSR825x系列,叫我跑demo,根据官方的开发手册基本进行不下去,要按照别人已经踩完坑的博客 一点点调试才能进行下去,最后是拿到的开发板调试log串口,波特率一直不稳定,后面就没继续开发了。
4 总结
这次的测评本来说是测评蓝牙透传功能的,但是当前给的基础的sdk可用性很差,手册也是极为简陋,如果没有技术人员的支持,开发工作进展极为缓慢,希望官方可以好好打磨一下sdk 和 ide,(听在telink的朋友说 telink studio快出来了)。