第二篇 点亮led灯
程序员文章站
2022-06-09 08:26:17
...
在上一篇,开发环境建立好了,那么接下来开发一个简单的应用,点亮一个led灯。
首先新建一个工程,Device选择nRF51822_xxAA。
工程建立好之后,接下来编写一个main.c来点亮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宏。在工程里配置一下,再编译,编译成功了。
Ok,编译是成功了,但此时我们还不能下载程序,需要配置一下JLink,配置如下:
配置好了之后,点击Download,还是下载不成功。
是因为开发板默认Down了蓝牙协议栈的版本,需要工具nrfgostudio先把整块擦除再下载。
再下载,下载成功,led灯被点亮。
由此可见,如果只是把nRF8122当作普通单片机来使用的话,也没有什么特别的。
上一篇: 笔记14:STM32F4之电容触摸按键
下一篇: Oracle 手工清除回滚段的几种方法