NRF52840学习历程(一)点灯

时间在2021125,寒假放假在家好好学一学

 

开发板:初雪的100出头那块 NRF52840 EVAL KIT

下载工具:JINLK V11(最好是JLINK V9以上 也有人用JLINK OB也行,其他的下载器STLINK,DAP不建议用)

版本号: KEIL5编程环境,CMSIS为5.3.0, NRF52840的CMSIS为8.35.0

参考资料: NRF52840-Eval-Kit-Schematic.pdf(原理图)

nRF5_SDK_17.0.2_d674dde(官方例程)

nRF5_SDK_17.0.0_offline_doc(官方文档)

 

实现功能: 点灯,流水灯,闪烁等

 

原理图

LED灯位置为 13 ,14 ,9+32=41, 16

当13,14,41,16给低电平时,LED就亮

 

使用 nrf_gpio_cfg_output 配置IO端口为输出模式

代码如下

    nrf_gpio_cfg_output(13);
	nrf_gpio_cfg_output(14);
	nrf_gpio_cfg_output(41);
	nrf_gpio_cfg_output(16);

当IO口输出为1时,LED灭, 输出0时, LED亮

注: set是将IO设置为1, clear是清零(IO置为0),toggle是IO状态翻转

代码如下

    nrf_gpio_cfg_output(13);
	nrf_gpio_cfg_output(14);
	nrf_gpio_cfg_output(41);
	nrf_gpio_cfg_output(16);

	nrf_gpio_pin_set(13);
	nrf_gpio_pin_set(14);
	nrf_gpio_pin_set(41);
	nrf_gpio_pin_set(16);
	nrf_gpio_pin_clear(13);
    

下载烧录可以发现确实有个LED亮了(IO13亮了)

 

 

我们还会用到一个延时函数

nrf_delay_ms(300);

注意,要包含头文件

#include "nrf_delay.h"

闪烁灯程序如下

while(1)
	{
		nrf_gpio_pin_toggle(13);
		nrf_gpio_pin_toggle(14);
		nrf_gpio_pin_toggle(41);
		nrf_gpio_pin_toggle(16);
		nrf_delay_ms(300);
}

流水灯程序如下

while(1)
	{
		nrf_gpio_pin_clear(13);
		nrf_delay_ms(300);
		nrf_gpio_pin_set(13);

		nrf_gpio_pin_clear(14);
		nrf_delay_ms(300);
		nrf_gpio_pin_set(14);
		
		nrf_gpio_pin_clear(41);
		nrf_delay_ms(300);
		nrf_gpio_pin_set(41);
		
		nrf_gpio_pin_clear(16);
		nrf_delay_ms(300);
		nrf_gpio_pin_set(16);
		
	}

此外,还可以用宏定义定义灯的名称,比如LED0,LED1,….

使用NRF_GPIO_PIN_MAP,定义

那么就可以用LED0代替13,比如

 

点灯就学到这里,等下见

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值