“NRF52832DK基础实验”的版本间的差异

来自谷雨文档中心
跳转至: 导航搜索
(02_按钮输入)
(添加每个外设原理图)
第16行: 第16行:
 
|熟悉GPIO操作
 
|熟悉GPIO操作
 
|-
 
|-
|02_按键输入实验
+
|02_按键输入实验(poll)
 
|GPIO
 
|GPIO
 
|熟悉GPIO操作
 
|熟悉GPIO操作
第23行: 第23行:
 
=== 01_LED亮灭实验 ===
 
=== 01_LED亮灭实验 ===
 
LED亮灭实验是展示nRF52832的GPIO输出配置,使开发者更直观的了解GPIO输出。GPIO输出是熟悉一款MCU的开始。下面将简单的介绍并分析相关代码。在NRF52832DK评估板上有4路LED资源,分别处在PIN17,PIN18,PIN19,PIN20四个引脚上。
 
LED亮灭实验是展示nRF52832的GPIO输出配置,使开发者更直观的了解GPIO输出。GPIO输出是熟悉一款MCU的开始。下面将简单的介绍并分析相关代码。在NRF52832DK评估板上有4路LED资源,分别处在PIN17,PIN18,PIN19,PIN20四个引脚上。
 +
[[文件:FOUR LINES LED.png|居中|缩略图|402x402像素|LED 外设电路]]
  
 +
==== 代码分析 ====
 
开发者打开谷雨物联提供的peripheral_ghostyu文件夹中01_led_blinkly工程(IAR工程)。
 
开发者打开谷雨物联提供的peripheral_ghostyu文件夹中01_led_blinkly工程(IAR工程)。
  
第56行: 第58行:
 
编译工程,点击IAR IDE工具栏中绿色三角仿真按钮,IAR便会将程序下载到nRF52832中,点击运全速运行即可。此时NRF52832的LED便会每500ms依次点亮LED;当四个LED全部点亮后,再以500ms依次熄灭LED,直到全部熄灭。
 
编译工程,点击IAR IDE工具栏中绿色三角仿真按钮,IAR便会将程序下载到nRF52832中,点击运全速运行即可。此时NRF52832的LED便会每500ms依次点亮LED;当四个LED全部点亮后,再以500ms依次熄灭LED,直到全部熄灭。
  
=== 02_按键输入实验 ===
+
=== 02_按键输入实验(poll) ===
 
01_LED亮灭实验是操作GPIO引脚输出,而本实验是操作GPIO的输入。利用GPIO输入引脚电平变化,来监测按键按下动作。
 
01_LED亮灭实验是操作GPIO引脚输出,而本实验是操作GPIO的输入。利用GPIO输入引脚电平变化,来监测按键按下动作。

2019年6月26日 (三) 15:12的版本

nRF52832是Nordic公司推出一款高性能无线SOC芯片,在芯片上可以运行多种协议栈,包括蓝牙BLE,NFC,ANT,802.15.4G,其中BLE协议栈可以支持到BLE5.0。为此谷雨物联推出一款基于nRF52832芯片评估板,nRF52832DK。

nRF52832DK评估板上设计了丰富实用的外围设备。其中有4路LED,4路按键输入,一路MINI usb转UART,三路PWM RGB灯珠,一路有源蜂鸣器,一路光敏,一路振动马达,TFT显示器接口,NFC标签接口。

1 nRF52832DK基础实验说明列表

方便开发者,更快,更容易上手nRF52832芯片的外设操作,为此我们提供和整理nRF52832DK外围电路实验说明。见下表所示。

实验名称 实验所需外设 实验简单说明
01_LED亮灭实验 GPIO 熟悉GPIO操作
02_按键输入实验(poll) GPIO 熟悉GPIO操作

2 01_LED亮灭实验

LED亮灭实验是展示nRF52832的GPIO输出配置,使开发者更直观的了解GPIO输出。GPIO输出是熟悉一款MCU的开始。下面将简单的介绍并分析相关代码。在NRF52832DK评估板上有4路LED资源,分别处在PIN17,PIN18,PIN19,PIN20四个引脚上。

LED 外设电路

2.1 代码分析

开发者打开谷雨物联提供的peripheral_ghostyu文件夹中01_led_blinkly工程(IAR工程)。

在IAR的Workspace中点开Application,双击main.c文件,打开main.c。

 1 int main(void)
 2 {
 3     /* Configure board. */
 4     bsp_board_init(BSP_INIT_LEDS);
 5 
 6     /* Toggle LEDs. */
 7     while (true)
 8     {
 9         for (int i = 0; i < LEDS_NUMBER; i++)
10         {
11             bsp_board_led_invert(i);    //翻转LED状态
12             nrf_delay_ms(500);          //延时500ms
13         }
14     }
15 }

其中bsp_board_init函数用于初始化LED引脚。BSP_INIT_LEDS常量表示初始化板级资源。除了BSP_INIT_LEDS之外还有BSP_INIT_BUTTONS。

1 #define BSP_INIT_NONE    0        /**< No initialization of LEDs or buttons (@ref bsp_board_init).*/
2 #define BSP_INIT_LEDS    (1 << 0) /**< Enable LEDs during initialization (@ref bsp_board_init).*/
3 #define BSP_INIT_BUTTONS (1 << 1) /**< Enable buttons during initialization (@ref bsp_board_init).*/

在bsp_board_init内部根据BSP_INIT_LEDS常量,将调用bsp_board_leds_init函数。将LED引脚配置成输出模式。而低下最终是调用nrf_gpio_cfg函数,来配置引脚。

完成LED引脚配置,进入while循环。在循环中遍历所有的LED引脚,翻转引脚高低电平,达到闪烁的目的。nrf_delay_ms函数用于软件延时。bsp_board_led_invert对引脚电平进行翻转。在bsp_board_led_invert内部调用了nrf_gpio_pin_toggle,参数是LED引脚。在nrf_gpio_pin_toggle内部,先读取引脚当前的高低电平状态,然后根据返回的状态进行取反,再设置OUT寄存器。

2.2 实验现象

硬件准备:

  1. Jlink-Lite仿真器或J-Link仿真器
  2. NRF52832DK评估板

编译工程,点击IAR IDE工具栏中绿色三角仿真按钮,IAR便会将程序下载到nRF52832中,点击运全速运行即可。此时NRF52832的LED便会每500ms依次点亮LED;当四个LED全部点亮后,再以500ms依次熄灭LED,直到全部熄灭。

3 02_按键输入实验(poll)

01_LED亮灭实验是操作GPIO引脚输出,而本实验是操作GPIO的输入。利用GPIO输入引脚电平变化,来监测按键按下动作。

本PDF由谷雨文档中心自动生成,点击下方链接阅读最新内容。

取自“http://doc.iotxx.com/index.php?title=NRF52832DK基础实验&oldid=1714