资料下载,请加扣扣群: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) |