打开主菜单

谷雨文档中心 β

更改

NRF52832DK基础实验

添加128字节2019年6月28日 (五) 16:16
01_MODUL CHANGE
开发者打开谷雨物联提供的peripheral_ghostyu文件夹中01_led_blinkly工程(IAR工程)。
在IAR的Workspace中点开Application,双击main.c文件,打开main.c。<syntaxhighlight lang="c++" line="1">//******************************************************************************// fn :main//// brief : 主程序入口//// param : none//// return : none
int main(void)
{
/* Configure board. */ bsp_board_init LED_Init(BSP_INIT_LEDS);
for(;;) { /* Toggle LEDs. */循环点亮熄灭LED,间隔500ms while for(trueuint8_t i = 0; i < LEDS_NUMBER ; i++)
{
for (int i = 0; i < LEDS_NUMBER; i++) { bsp_board_led_invert nrf_gpio_pin_toggle(Leds[i]); //翻转LED状态 nrf_delay_ms(500); //延时500ms }
}
}
}
</syntaxhighlight>其中bsp_board_init函数用于初始化LED引脚。BSP_INIT_LEDS常量表示初始化板级资源。除了BSP_INIT_LEDS之外还有BSP_INIT_BUTTONS。其中LED_Init函数用于初始化LED引脚。将四路LED引脚初始化输出模式,并置高电平,即熄灭LED。<syntaxhighlight lang="c++" line="1">#define BSP_INIT_NONE 0 //*****************************************************************************< No initialization of LEDs or buttons (@ref bsp_board_init).*// fn :LED_Init//#define BSP_INIT_LEDS // brief : 初始化LED引脚为输出模式,并熄灭LED//// param : none//// return : nonevoid LED_Init(1 << void){ uint8_t i = 0) ; //**< Enable LEDs during initialization 配置LED引脚为输出模式 nrf_gpio_range_cfg_output(@ref bsp_board_initLED_START, LED_STOP).*; //置LED引脚为高电平,即LED灭#define BSP_INIT_BUTTONS for(1 i = 0 ; i << 1LEDS_NUMBER; i++) /**< Enable buttons during initialization { nrf_gpio_pin_set(@ref bsp_board_initLeds[i]).*/; }}</syntaxhighlight>在bsp_board_init内部根据BSP_INIT_LEDS常量,将调用bsp_board_leds_init函数。将LED引脚配置成输出模式。而低下最终是调用nrf_gpio_cfg函数,来配置引脚。LED_START,LED_STOP是两个宏,标记LED开始引脚到LED结束引脚范围。配合nrf_gpio_range_cfg_output函数,可实现批量设置。nrf_gpio_pin_set设置LED引脚输出高电平。
完成LED引脚配置,进入while循环。在循环中遍历所有的LED引脚,翻转引脚高低电平,达到闪烁的目的。nrf_delay_ms函数用于软件延时。bsp_board_led_invert对引脚电平进行翻转。在bsp_board_led_invert内部调用了nrf_gpio_pin_toggle,参数是LED引脚。在nrf_gpio_pin_toggle内部,先读取引脚当前的高低电平状态,然后根据返回的状态进行取反,再设置OUT寄存器。完成LED引脚配置,进入while循环。在循环中遍历所有的LED引脚,翻转引脚高低电平,达到闪烁的目的。nrf_delay_ms函数用于软件延时。nrf_gpio_pin_toggle对引脚电平进行翻转。参数是LED引脚。在nrf_gpio_pin_toggle内部,先读取引脚当前的高低电平状态,然后根据返回的状态进行取反,再设置OUT寄存器。
==== 实验现象 ====
119
个编辑