正如编写普通程序中的第一个helloworld程序一样,单片机里第一个入门程序自然是点个灯,先让自己开心一下。
2.1 编写第一个亮灯程序(由于第一个程序就详细的讲解下)
硬件准备:pca10000(dongle)
软件准备:blinky_exampl(Keil\ARM\Device\Nordic\nrf51822\Board\pca10001\blinky_example文件下,由于pca10000里没有点灯例程)
1.打开blinky.uvproj(依次设置)
(这里IROM,IRAM设置要强调下。Irom1在不在ble协议栈的情况下从0x0开始有ble协议栈s110,S120,s130,rom起始就得从ble协议栈之后开始,比如s110 v7 是有88k,从而起始就是0x16000)
当你是在弄不清楚,就用nrfgo 直接下载吧
(这里修改很重要,因为在main.c文件头文件有#include "boards.h"打开如下)
上上图的设置里的define里面设置的就是宏定义上图的板子设置,因为现在我们硬件选用pca10000,所以在 修改为NRF51 BOARD_PCA10000
注意:pca10000的引脚灯是LED_RGB_RED,PCA10001是LED_0;所以主程序要将LED_0等修改为pca10000.h里面的引脚设置
(这里是设置哪些引用的头文件C文件的路径选择)
当插上不识别jlink时或者下载不了时,点上面的settings,等到电脑识别jlink,在下图那个地方会有jlink信息,下图由于没插jlink所以没显示,然后再点图中的flash download
(要保证上图箭头地方有那个)
2.开始下载
编译完后可以选择load下载,下载完后也可进行调试,下图箭头为调试
注意事项:下载完ble协议栈程序后,重新下载普通程序必须用nrfgo先擦出
其他注意事项可参考:
【总结】nRF51822 开发过程中的各种奇葩问题解决办法 V1.0.pdf
软件篇NRF51822开发环境设置.pdf
3.程序分析
这个程序比较简单就是先设置i/o为输出,然后点灯延时。一般先查看nrf51 手册里面的io口寄存器
我们着重看下pin_cnf寄存器
它与main.c里的nrf_gpio_cfg_output(LED_RGB_RED)相对应;看nrf_gpio_cfg_output()定义,一般是不需要修改的,只是了解下
一般输入输出配置不需要修改,直接用,但是当需要大电流,比如电机马达,led时需改变驱动能力,具体选用那种,可以实测。