nrf51822点亮一个LED灯(裸机点亮,无蓝牙协议)


本篇文章是基于上一篇文章《 nrf51822在MDK5(keil5)新建工程》建的工程的基础上进行的。

1. 编写LED驱动程序

在HARDWARE文件夹下新建一个LED文件夹,并在文件夹下新建led.c和led.h,并编写相应的代码,本次用到的IO口是P0.21

led.c
#include "led.h"
#include "nrf_gpio.h"
#include "nrf51.h"

void LED_Init(void)
{
    nrf_gpio_cfg_output(21);
}
void LED_ON(void)
{
    nrf_gpio_pin_clear(21);
}
void LED_OFF(void)
{
    nrf_gpio_pin_set(21);
}
void LED_TOGGLE(void)
{
    nrf_gpio_pin_toggle(21);
}
led.h
#ifndef _LED_H
#define _LED_H
void LED_Init(void);
void LED_ON(void);
void LED_OFF(void);
void LED_TOGGLE(void);
#endif

2. 配置工程

在这里插入图片描述
如图所示,在Define中加入NRF51822,并在C99 Mode前面打上勾,否则会报错。由于nrf51822的SDK是不开源的,所以只需要包含对应的头文件,就可以使用相应的函数,所以需要在Include Paths中添加想用的头文件。
在这里插入图片描述
这时候编译工程的话,会提示找不到sdk_config.h这个文件,这个文件我们可以到官方的SDK文件夹下找到,这里我复制的是nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_template\pca10028\s130\config这个路径下的sdk_config.h,并加上对应的头文件路径即可。
这个文件主要是控制一些外设驱动的使能,如需要在工程中加入nrf_drv_gpiote.c这个文件来使用这个文件里的函数。该函数中有一句 #if NRF_MODULE_ENABLED(GPIOTE) 这个条件编译,这时候就需要我们在sdk_config.h使能该模块,条件编译才能通过,我们才可以使用这个文件里的文件。
在这里插入图片描述
如图所示,在sdk_config.h将GOIOE_ENABLE置1,即可使用nrf_drv_gpiote.c这个文件中的函数。

3. 编写mian函数

#include "led.h"
#include "nrf_delay.h"

int main(void)
{
    LED_Init();
    while(1) 
    {
        LED_ON();
        nrf_delay_ms(1000);
        LED_OFF();
        nrf_delay_ms(1000);
    }        
}

然后将程序下载到nrf51822中就可以看见LED灯闪烁了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值