打开主菜单

谷雨文档中心 β

更改

NRF52832DK基础实验

添加2,304字节2019年6月26日 (三) 14:29
02_按钮输入
|熟悉GPIO操作
|-
|02_LED跑马灯实验|GPIO|熟悉GPIO操作|-|03_按键输入实验02_按键输入实验
|GPIO
|熟悉GPIO操作
=== 01_LED亮灭实验 ===
LED亮灭实验是展示nRF52832的gpio输出配置,使开发者更直观的了解gpio输出。gpio输出是熟悉一款mcu的开始。下面将简单的介绍并分析相关代码。LED亮灭实验是展示nRF52832的GPIO输出配置,使开发者更直观的了解GPIO输出。GPIO输出是熟悉一款MCU的开始。下面将简单的介绍并分析相关代码。在NRF52832DK评估板上有4路LED资源,分别处在PIN17,PIN18,PIN19,PIN20四个引脚上。 开发者打开谷雨物联提供的peripheral_ghostyu文件夹中01_led_blinkly工程(IAR工程)。 在IAR的Workspace中点开Application,双击main.c文件,打开main.c。<syntaxhighlight lang="c++" line="1">int main(void){ /* Configure board. */ bsp_board_init(BSP_INIT_LEDS);  /* Toggle LEDs. */ while (true) { for (int i = 0; i < LEDS_NUMBER; i++) { bsp_board_led_invert(i); //翻转LED状态 nrf_delay_ms(500); //延时500ms } }}</syntaxhighlight>其中bsp_board_init函数用于初始化LED引脚。BSP_INIT_LEDS常量表示初始化板级资源。除了BSP_INIT_LEDS之外还有BSP_INIT_BUTTONS。<syntaxhighlight lang="c++" line="1">#define BSP_INIT_NONE 0 /**< No initialization of LEDs or buttons (@ref bsp_board_init).*/#define BSP_INIT_LEDS (1 << 0) /**< Enable LEDs during initialization (@ref bsp_board_init).*/#define BSP_INIT_BUTTONS (1 << 1) /**< Enable buttons during initialization (@ref bsp_board_init).*/</syntaxhighlight>在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寄存器。 ==== 实验现象 ====硬件准备:# Jlink-Lite仿真器或J-Link仿真器# NRF52832DK评估板编译工程,点击IAR IDE工具栏中绿色三角仿真按钮,IAR便会将程序下载到nRF52832中,点击运全速运行即可。此时NRF52832的LED便会每500ms依次点亮LED;当四个LED全部点亮后,再以500ms依次熄灭LED,直到全部熄灭。 === 02_按键输入实验 ===01_LED亮灭实验是操作GPIO引脚输出,而本实验是操作GPIO的输入。利用GPIO输入引脚电平变化,来监测按键按下动作。
119
个编辑