nRF52832-基本外设使用:GPIO输出

nRF52832-GPIO输出

环境介绍

PC环境:Windows
IDE环境:ARM-MDK5
SDK环境:nRF5 SDK v15.1.0
硬件环境:nRF52832开发板(外设配置与官方pca10040开发板一致)

使用官方的blinky例程,该位于nRF5_SDK_15.1.0_a8c0c4d\examples\peripheral\blinky\pca10040\s132\arm5_no_packs目录下。
注:pca10040代表nRF52832例程,s132代表基于协议栈的工程,ARM-MDK5选择arm5_no_packs

GPIO输出配置

打开工程并打开main.c文件,可以看到mian函数内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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);
nrf_delay_ms(500);
}
}
}

该例程是基于pca10040(nRF52832)开发板的LED例程,实现LED1~LED4依次闪烁的功能,下面根据LED的GPIO配置来配置P25和P26引脚输出高低电平,在main.c中添加自定义函数,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* @函数名 Custom_Init
* @功 能 用户自定义GPIO口初始化
* @参 数 无
* @返回值 无
*/
void Custom_Init(void)
{
nrf_gpio_cfg_output(25); //初始化P25引脚,配置为输出模式
nrf_gpio_cfg_output(26); //初始化P26引脚,配置为输出模式

nrf_gpio_pin_write(25, 0); //P25引脚输出低电平
nrf_gpio_pin_write(26, 0); //P26引脚输出低电平
}

把该函数在main函数中初始化,然后在主函数循环中翻转P25和P26引脚状态,main函数如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
nrf_gpio_pin_toggle(25); //翻转P25引脚状态
nrf_gpio_pin_toggle(26); //翻转P26引脚状态
nrf_delay_ms(500);
}
}
}

使用示波器检测P25和P26引脚状态,如下图:

资源参考

官方文档:http://infocenter.nordicsemi.com/index.jsp

例程说明位于官方文档目录:Software Development Kit > nRF5 SDK > nRF5 SDK v15.1.0 > Examples > Hardware peripheral examples > Blinky Example

GPIO相关API函数说明位于官方目录:Software Development Kit > nRF5 SDK > nRF5 SDK v15.1.0 > API Reference > Peripheral drivers > Peripheral drivers > GPIO

代码烧录

  1. 擦除FLASH
  2. 烧写SoftDevice
  3. 烧写应用程序

具体操作参考:nRF52832-程序下载

本文标题:nRF52832-基本外设使用:GPIO输出

文章作者:LGG001

发布时间:2018年09月04日 - 22:09

最后更新:2019年01月21日 - 20:01

原始链接:http://yoursite.com/2018/09/04/nRF52832-基本外设使用-GPIO输出/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------
Thank You For Your Approval !