欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第二篇 点亮led灯

程序员文章站 2022-06-09 08:26:17
...
在上一篇,开发环境建立好了,那么接下来开发一个简单的应用,点亮一个led灯。

首先新建一个工程,Device选择nRF51822_xxAA。

工程建立好之后,接下来编写一个main.c来点亮led灯,代码如下:
#include <nrf51.h>
#include <nrf_gpio.h>

#define LED_INDEX 16

void init_led(void)
{
	nrf_gpio_cfg_output(LED_INDEX);
}

void led_on(void)
{
	nrf_gpio_pin_set(LED_INDEX);
}

void led_off(void)
{
	nrf_gpio_pin_clear(LED_INDEX);
}

int main(void)
{
	init_led();
	led_on();
	while (1);
}

把这个文件添加到工程里面,编译一下试试,是编不成功的,需要一个启动文件。

从提供的测试代码里将arm_startup_nrf51.s、system_nrf51.c拷贝到我们工程的目录里面,然后添加到工程里面。

再次编译,还是没有编译过,提示:
C:\Keil\ARM\Device\Nordic\nRF51822\Include\nrf.h(25): error:  #35: #error directive: "Device family must be defined. See nrf.h."

需要定义NRF51宏。在工程里配置一下,再编译,编译成功了。第二篇 点亮led灯

Ok,编译是成功了,但此时我们还不能下载程序,需要配置一下JLink,配置如下:第二篇 点亮led灯

第二篇 点亮led灯

第二篇 点亮led灯

第二篇 点亮led灯

配置好了之后,点击Download,还是下载不成功。

是因为开发板默认Down了蓝牙协议栈的版本,需要工具nrfgostudio先把整块擦除再下载。第二篇 点亮led灯

再下载,下载成功,led灯被点亮。


由此可见,如果只是把nRF8122当作普通单片机来使用的话,也没有什么特别的。