Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61272
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-12 08:37
个人简介

有事可以联系扣扣:577665300

文章分类

全部博文(11)

文章存档

2018年(1)

2017年(6)

2016年(4)

我的朋友

分类: C/C++

2017-01-05 15:18:52

资料下载,请加扣扣群:261251460

51822主要参数介绍:
51822使用ARM Cortex M0/32 bit,16KB RAM,FLASH 128KB/256KB,31个GPIO,具有uart、spi、iic接口。
在发射的时候功耗是10.5mA@3V、接收为13mA@3V,由于功能强大、功耗低,所以市面上的大多数物联网产品都选用了该方案。

下面我们从最简单的io控制入手,并逐步讲解51822的sdk。。。

打开\nRF5_SDK_11.0.0_89a8197\examples\peripheral\blinky\pca10028\blank\arm4 工程
打开main.c

上面代码笔者做了简单注释,下面详细分析一下:

定义进  LEDS_CONFIGURE(LEDS_MASK);  中

 nrf_gpio_cfg_output(pin);这个函数就是负责将iO口设置为输出,
例如: nrf_gpio_cfg_output(1);就是将gpio0引脚设置成输出型。
补充一下,gpio口,通常有上拉、输入、输出、复用等功能,这里是驱动led,所以设置成输出。

设置成输出口,我们还需要根据原理图输出高电平或者低电平去驱动led,这里是高电平有效。
下面我们再进去LEDS_INVERT(1 << leds_list[i]);

 NRF_GPIO->OUT是把所有io的状态读出来,例如如果gpio0为1,gpio1...gpio31为0,那么 NRF_GPIO->OUT = 0x00000001
NRF_GPIO->SET =0x00000001,就是把gpio0输出为高。
实际上我们也可以通过 nrf_gpio_pin_set(pin_number);去设置输出,NRF_GPIO->SET =0x00000001等价nrf_gpio_pin_set(1)

这样我们就可以通过:nrf_gpio_pin_set(LED_1);去驱动LED_1。




阅读(2729) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~