nRF SDK Step By Step

概述

单板嵌入式软件到底是用驱动库还是直接操作寄存器,这是一个永恒的话题,就像豆花到底应该放盐还是放糖一样。

刚接触nRF SDK的我也一样在纠结这个问题:直接操作寄存器吧,简单,非常简单。但是一方面程序结构和移植性上肯定好不了,如果想做好一点,干嘛不用别人做好的?人家已经写了几百M的代码放在那里(这得是多少人的心血啊!尤其是嵌入式领域!),干嘛要重复造车轮子?用库吧,你得先把人家的库看明白了才好用啊,要把这么多代码看明白。。。。想想也是醉了。而且nRF不光有外设驱动,还有应用库,上面再叠加应用,三层结构。分这么多层,理解了就很好用,要入门就很头疼。

纠结!!!

想来想去,还是不要浪费人家写的几百M的代码为好,站在巨人的肩膀上不是更好!

所以,我们现在要做的,就是先爬上去!

文件结构

打开一个最简单的SDK里的外设驱动工程,即可以一般地归纳出从代码的框架结构:

Application

main.c:主程序,包含初始化和主循环。如果应用够简单,功能的实现代码也会被放在这里。

Board Definition

也只包含一个Boards.c文件,从内容上来看,基本上就只包含了按键和LED的初始化和使用代码

nRF_Drivers

外设驱动,应该是包含跟外设寄存器直接打交道的代码,其中有一个文件叫‘nrf_drv_common.c’, 应该是所有外设都会用到的公用代码。然后需要用啥外设就把相应的文件往里加

nRF_Libraries

个人理解这个文件夹下的代码是基于 nRF_Drivers,给Application提供服务的。

nRF_Log/nRF_Segger_RTT

用于打印调试信息

 

你可能感兴趣的:(BlueTooth)