开发所需要的硬件设备:
1.MiniUSB线一条
2.BLE400板子一块
3.Jlink一个(这个是自己网上买的~30块吧)
以上,硬件准备就结束了。
下面开始啃资料吧:
该板子是微雪电子提供的,所以到他们官网上下载软件,应有尽有啊~~~
接下去,你需要安装如下软件:
1、Keil MDK---用于写代码咯。
2、nrf51_sdk_v5_2_0_39364.msi 这个是官方的sdk安装包,
安装路径默认在:C:Program Files (x86)KeilARMDeviceNordicnrf51822.... (注,我安装都是默认让它装在c盘中)。安装完还会弹出一个网站哦: C:Program Files(x86)KeilARMDeviceNordicDocumentationhtmlindex.html 这个网站是Nordic关于BLE的Api参考文档,我们以后会需要用到~~)。
3、nRFgo studio (该软件是nordic官方提供的,用于烧写蓝牙SoftDevice层,先不着急使用这软件,如上的传送门可以下载到)
~把所有资料都下载到一个文件夹里~只要是资料,统统下下来。这样,文档部分也准备完成了。
建议看看Core51822-Schematic.pdf 跟BLE400-Schematic.pdf 了解下板子的“构造”(当然主要关注下编程接口咯)
小试牛刀:
打开示例工程:(blink_example~~就是一闪一闪的意思吧)
C:Program Files(x86)KeilARMDeviceNordicnrf51822Boardpca10001blinky_examplearmblinky.uvproj
编译下-通过。将jlink 与板子连接在一起,接线的话按照原理图:
点开kile中的魔术棒(TargetOption)进行如图的设置,理论上如果jlink识别到了芯片,在SW Device中是会显示device 的IDCODE的~如下的长椭圆中显示一样。
再顺便看看FlashDownload中的东西吧(一般默认工程是不需要更改的,我们看看就好,不要改动哈,至于为什么以后解释)
好了,目前看这样的设置是没问题的,可以debug了。
但是问题出现了~为毛不能debug呢?
解决方法:
打开nRFgo Studio,在DeviceManager中选中nRF51 Programming,在右侧有个EraseAll(方框),点击下哈~~至于为什么~等下解释。)
擦除后,回到Keil中,重新debug,就成功咯~~~
至于为啥?
简单理解,
1.SoftDevice --- 这东西就是Nordic实现BLE协议栈的部分。
2.想开发个BLE应用需要 SoftDevice + 用户Application ,这样才能成功的开发。开发时需要烧写两部分东西:
1、先烧写SoftDevice s110_nrf51822_6.0.0_softdevice.hex (peripheral角色) 或 s120_nrf51822_1.0.0-1.alpha_softdevice.hex(Center角色)。(比如烧写在flash地址0x0000 0000 - 0x0000 ffff中
2、再烧写用户写的应用程序。比如烧写到0x0000 ffff 到 0x00ff 0000 中。
3.Blink_example是闪灯的程序(该程序并不具备BLE功能,纯属裸机调试实际代码是烧写到flash地址:0x0000 0000 到 0x00ff 0000 中的)
总结以上3点,用户在开发BLE应用的时候只需要烧写一次SoftDevice(只会擦除 0x0000 ffff 到 0x00ff0000 之间的内容,Softdevice这部分是不会被擦除滴(想擦除需要使用nRFgo Studio)。
因为我们的Blink_example DEBUG的时候需要将0x0000 0000 到0x 00ff 0000 的地址全部擦除(竟然想连SoftDevice层一起擦除!!!Nordic芯片不干~~~因此就报错咯)。