本文主要是通过迁移的思维,记录本人初次使用NXP MCUXpresso SDK API进行BSP开发
MCUXpresso SDK GPIO API 接口链接
在MCUXpresso SDK 框架下提供了对GPIO进行操作的接口。针对GPIO当作输出使用,一般只需要将对应的引脚配置成GPIO功能,方向为输出,需要设置初始化默认电平。接下来就可以对其进行置高或置低操作。
1. 首先阅读原理图
设计中有一个输出引脚,如下所示:
GPIO_AD_35----GPIO10_IO02
2. SDK api 应用
2.1 GPIO Init
需要将对应的引脚复用成普通的GPIO引脚。
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_35_GPIO10_IO02, /* GPIO_AD_35 is configured as GPIO10_IO02 */
0U); /* Software Input On Field: Input Path is determined by functionality */
将引应用的引脚配置成输入:
/* GPIO configuration of USER_LED on GPIO_AD_35 (pin G17) */
gpio_pin_config_t USER_LED_config = {
.direction = kGPIO_DigitalOutput,
.outputLogic = 0U,
.interruptMode = kGPIO_NoIntmode
};
/* Initialize GPIO functionality on GPIO_AD_35 (pin G17) */
GPIO_PinInit(GPIO10, 2U, &USER_LED_config);
2.2 GPIO write
在MCUXpresso SDK框架下, 通过GPIO_PinWrite用于设置IO的电平, 如下所示
/*!
* @brief Sets the output level of the individual GPIO pin to logic 1 or 0.
*
* @param base GPIO base pointer.
* @param pin GPIO port pin number.
* @param output GPIOpin output logic level.
* - 0: corresponding pin output low-logic level.
* - 1: corresponding pin output high-logic level.
*/
void GPIO_PinWrite(GPIO_Type *base, uint32_t pin, uint8_t output);
实际操作代码如下所示:
/*输出低电平*/
GPIO_WritePinOutput(GPIO10,2U, 0);
/*输出高电平*/
GPIO_WritePinOutput(GPIO10,2U, 1);
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. 总结
图型化工具辅助编程是大趋势,让客户专注应用开发。