基于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进行操作。目前主流的单片机都支持通过图形界面生成初始化代码,初次体验了一把。