芯科蓝牙BG27开发笔记1-新建示例工程

此笔记的必要性

芯科的官方资料很丰富,并且ssv5中能方便索引到所需文档,不过大而全的问题就是找不到合适的切入点,更不会有本地化比较好的中文的系统的教程了。往往看到一个starting guide,会延伸其他starting guide,这么套下去,资料虽然呈现出来了,效率却很低,有很多东西是前期根本不需要理会的。更不要说会出现第一个示例工程就必须要上个bootloader,以及最新的BG27的开发板资料有所错漏的诸如此类的小坑了......

入门的计划事项

前面几个周,确实进度感人!浏览那些繁杂的资料,创建、阅读、测试示例工程,搞清楚这"考虑太多"的官方开发板,芯科蓝牙SDK的初步了解,几乎每一步都要比Nordic入门费劲。而这些本该是范式的东西。

不过思路变得清晰,搞定这些只是时间问题。

学习一个新的东西,我习惯首先去提出一些问题,随着学习推进,这些问题从笼统变的具体,从初级变的深入,诸如:

1. 我要用的东西是什么?怎么去学习它,获取资料的途径有哪些?

2. 我要用这个东西来干什么?怎么去实现?

3. 我要从哪里开始?

问题是渐进式的,一无所知怎能在一开始就一语破的?

问题不是一定要完美解决的,前期问题,更多的作用是分清方向找到合适的切入点,不能立刻解决的问题,大多要记下来,大多又会在后边的学习阶段迎刃而解。那种勇攀学习曲线峭壁的情况是少之又少。

高效浏览、综合分析是必要的,尤其是在有基础的情况下。对一门全新知识来说,那还是找本书,系统地去啃。

随着对资料的熟悉,对提出的初期问题的总结,脉络开始清晰。

第一个工程-蓝牙点灯

具体功能是:APP上控制灯的亮灭、板子上的按键通知上传到APP

在launcher选项卡下边,可以看到已经连接的官方开发板的型号,此时直接点击start进入下一步;

如果没有开发板就需要选择All products中的对应芯片。

注意该页面右下角的教程文档,实际上是必须要先看看的。

点击示例那一栏

可以关键词筛选已有的示例,不过此处使用soc blinky示例,点击创建

最好选择拷贝所有内容到工程中,虽然需要200M+的大小,但是这可以便于在VSCODE中查看所有代码:

自动创建完成,注意此时从launcher选项卡跳到了Simpley IDE,实际上,ssv5中的图形化配置要比nordic做的更好。这个工程是不能直接编译下载运行的,需要去掉bootloader的功能。在芯科这套工具中,软件功能都是模块化的,并且携带了前后的依赖关系,同时加载和删除软件模块都是图形UI操作。

根据readme说明,要卸载"the Bootloader Application Interface software component",要注意先删除依赖该模块的部件才能继续删除此模块!

点击卸载是失败的,需要删除后级依赖

成功卸载之后,工程目录下的相关文件和代码会被自动删除,此处,先不用关心。按照下图顺序,编译下载(点选项目项目之后,编译图标才会有效)。

后续,使用任一一款蓝牙调试助手,按照readme说明,即可实现以下两个功能:

  1. app控制开发板上的灯

  2. 按键信息被上传到手机APP

注意事项

使用的开发板:

按键对应到BG27的引脚并不是PB0和PB1,而是PC05和PC04,这一点在《UG551: EFR32xG27 2.4 GHz 8 dBm Radio Board User's Guide》中也是错的,需要自己查找该开发板的原理图,在如下位置:

重新进入新建工程页面,点击start之后的页面中,点击Document筛选所需的关联文档:

打开原理图,发现这个底板想要实现的功能很杂,我用的4001型号,内含功率测试电路。另外的,主控芯片是st+外置ram的方案,整合了正版jlink!(注意有些版本的jflash将因为版权问题无法使用)整体的复杂度比nordic的高很多。

查阅主板图:

查阅蓝牙板的原理图:

按键和灯是联动的,但是又不是所有时候都能联动!在PC04、05默认不配置的时候,按键下去,线上的电压是2.8V左右,无法开启MOS管。大致可以认为这个1M上拉电阻被BG27内部电阻并联后整体上拉电阻<100Ω。由此推论,岂不是GPIO的上电默认是VDD?这样明显是由风险的。所以此问题暂且记录。

相关推荐
车轮滚滚__1 小时前
uniapp对接unipush 1.0 ios/android
笔记
云边有个稻草人4 小时前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
冷眼看人间恩怨12 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
Hejjon17 小时前
SpringBoot 整合 SQLite 数据库
笔记
西洼工作室20 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.20 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑21 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
stm 学习ing1 天前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉1 天前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
bohu831 天前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口