基于RT1170 使能GPIO输入功能 (一)

本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发

MCUXpresso SDK GPIO API 接口链接
  在MCUXpresso SDK 框架下提供了对GPIO进行操作的接口。针对GPIO当作输入使用,一般只需要将对应的引脚配置成GPIO功能,方向为输入,需要设置初始化默认电平是不生效的。接下来就可以对其进行读取操作。

1. 首先阅读原理图

  设计中有一个输入引脚,如下所示:
  USER_KEY1----GPIO_AD_26----GPIO9_IO25
在这里插入图片描述

2. SDK api 应用

2.1 GPIO Init

需要将对应的引脚复用成普通的GPIO引脚。

void BOARD_InitPins(void)
{
	IOMUXC_SetPinMux(IOMUXC_GPIO_AD_26_GPIO9_IO25, 0U);
}

将引应用的引脚配置成输入:

#define EXAMPLE_SW_GPIO GPIO9
#define EXAMPLE_SW_GPIO_PIN (25U)

/* Define the init structure for the input switch (USER_KEY1) pin */
gpio_pin_config_t sw_config = {
	kGPIO_DigitalInput,
	0,
	kGPIO_NoIntmode ,
};
/*Init  USER_KEY1  be use for input*/
GPIO_PinInit(EXAMPLE_SW_GPIO, EXAMPLE_SW_GPIO_PIN, &sw_config);

2.2 GPIO read

在MCUXpresso SDK框架下, 通过GPIO_PinRead 读取IO的电平, 如下所示

GPIO_PinRead(EXAMPLE_SW_GPIO, EXAMPLE_SW_GPIO_PIN)

3. 代码生成

在NXP提供的工具里可以通过 MCUXpresso Config Tools v9 生成初始化代码。
先将引脚配置成普能的GPIO。

再将引脚配置成输入。

点击更新源代码。

即可生成对应的初始化代码。

  /* GPIO configuration of USER_KEY1 on GPIO_AD_26 (pin L14) */
  gpio_pin_config_t USER_KEY1_config = {
      .direction = kGPIO_DigitalInput,
      .outputLogic = 0U,
      .interruptMode = kGPIO_NoIntmode
  };
  /* Initialize GPIO functionality on GPIO_AD_26 (pin L14) */
  GPIO_PinInit(GPIO9, 25U, &USER_KEY1_config);

  IOMUXC_SetPinMux(
      IOMUXC_GPIO_AD_26_GPIO9_IO25,           /* GPIO_AD_26 is configured as GPIO9_IO25 */
      0U);

4. 总结

在MCUXpresso SDK框架下通过MCUXpresso Config Tools v9 生成初始化代码,再通过MCUXpresso SDK API对GPIO进行操作。目前主流的单片机都支持通过图形界面生成初始化代码,初次体验了一把。

posted @ 2021-08-21 14:43  嵌入式实操  阅读(242)  评论(0编辑  收藏  举报