• 基于RT1170 使能GPIO输出功能 (二)


    本文主要是通过迁移的思维,记录本人初次使用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. 总结

      图型化工具辅助编程是大趋势,让客户专注应用开发。

  • 相关阅读:
    es6类
    ES6模块化
    es6之常/变量
    es6之结构赋值
    es6之箭头函数、rest函数
    es6的新方法
    数组的使用方法
    Vue接口调用问题
    监听器和计算属性
    Vue路由
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/15169531.html
Copyright © 2020-2023  润新知