125 lines
3.8 KiB
C
125 lines
3.8 KiB
C
/**
|
||
******************************************************************
|
||
* @file bsp_led.c
|
||
* @author fire
|
||
* @version V1.1
|
||
* @date 2018-xx-xx
|
||
* @brief led应用函数接口
|
||
******************************************************************
|
||
* @attention
|
||
*
|
||
* 实验平台:野火 i.MXRT1052开发板
|
||
* 论坛 :http://www.firebbs.cn
|
||
* 淘宝 :https://fire-stm32.taobao.com
|
||
*
|
||
******************************************************************
|
||
*/
|
||
#include "fsl_iomuxc.h"
|
||
#include "fsl_gpio.h"
|
||
|
||
#include "pad_config.h"
|
||
#include "bsp_led.h"
|
||
|
||
/*******************************************************************************
|
||
* 宏
|
||
******************************************************************************/
|
||
/* 所有引脚均使用同样的PAD配置 */
|
||
#define LED_PAD_CONFIG_DATA (SRE_0_SLOW_SLEW_RATE| \
|
||
DSE_6_R0_6| \
|
||
SPEED_2_MEDIUM_100MHz| \
|
||
ODE_0_OPEN_DRAIN_DISABLED| \
|
||
PKE_0_PULL_KEEPER_DISABLED| \
|
||
PUE_0_KEEPER_SELECTED| \
|
||
PUS_0_100K_OHM_PULL_DOWN| \
|
||
HYS_0_HYSTERESIS_DISABLED)
|
||
/* 配置说明 : */
|
||
/* 转换速率: 转换速率慢
|
||
驱动强度: R0/6
|
||
带宽配置 : medium(100MHz)
|
||
开漏配置: 关闭
|
||
拉/保持器配置: 关闭
|
||
拉/保持器选择: 保持器(上面已关闭,配置无效)
|
||
上拉/下拉选择: 100K欧姆下拉(上面已关闭,配置无效)
|
||
滞回器配置: 关闭 */
|
||
|
||
/*******************************************************************************
|
||
* 声明
|
||
******************************************************************************/
|
||
static void LED_IOMUXC_MUX_Config(void);
|
||
static void LED_IOMUXC_PAD_Config(void);
|
||
static void LED_GPIO_Mode_Config(void);
|
||
|
||
/**
|
||
* @brief 初始化LED相关IOMUXC的MUX复用配置
|
||
* @param 无
|
||
* @retval 无
|
||
*/
|
||
static void LED_IOMUXC_MUX_Config(void)
|
||
{
|
||
/* 核心板的LED灯 */
|
||
/* 设置引脚的复用模式为GPIO,不使用SION功能 */
|
||
IOMUXC_SetPinMux(CORE_BOARD_LED_IOMUXC, 0U);
|
||
|
||
/* RGB LED灯,使用同样的IOMUXC MUX配置 */
|
||
IOMUXC_SetPinMux(RGB_RED_LED_IOMUXC, 0U);
|
||
IOMUXC_SetPinMux(RGB_BLUE_LED_IOMUXC, 0U);
|
||
IOMUXC_SetPinMux(RGB_GREEN_LED_IOMUXC, 0U);
|
||
}
|
||
|
||
/**
|
||
* @brief 初始化LED相关IOMUXC的MUX复用配置
|
||
* @param 无
|
||
* @retval 无
|
||
*/
|
||
static void LED_IOMUXC_PAD_Config(void)
|
||
{
|
||
/* 核心板的LED灯 */
|
||
IOMUXC_SetPinConfig(CORE_BOARD_LED_IOMUXC, LED_PAD_CONFIG_DATA);
|
||
|
||
/* RGB LED灯,使用同样的IOMUXC PAD配置 */
|
||
IOMUXC_SetPinConfig(RGB_RED_LED_IOMUXC, LED_PAD_CONFIG_DATA);
|
||
IOMUXC_SetPinConfig(RGB_GREEN_LED_IOMUXC, LED_PAD_CONFIG_DATA);
|
||
IOMUXC_SetPinConfig(RGB_BLUE_LED_IOMUXC, LED_PAD_CONFIG_DATA);
|
||
}
|
||
|
||
|
||
/**
|
||
* @brief 初始化LED相关的GPIO模式
|
||
* @param 无
|
||
* @retval 无
|
||
*/
|
||
static void LED_GPIO_Mode_Config(void)
|
||
{
|
||
/* 定义gpio初始化配置结构体 */
|
||
gpio_pin_config_t led_config;
|
||
|
||
/** 核心板的LED灯,GPIO配置 **/
|
||
led_config.direction = kGPIO_DigitalOutput; //输出模式
|
||
led_config.outputLogic = 1; //默认高电平
|
||
led_config.interruptMode = kGPIO_NoIntmode; //不使用中断
|
||
|
||
/* 初始化 LED GPIO. */
|
||
GPIO_PinInit(CORE_BOARD_LED_GPIO, CORE_BOARD_LED_GPIO_PIN, &led_config);
|
||
|
||
/* 使用同样的LED config配置RGB LED灯 */
|
||
GPIO_PinInit(RGB_RED_LED_GPIO, RGB_RED_LED_GPIO_PIN, &led_config);
|
||
GPIO_PinInit(RGB_GREEN_LED_GPIO, RGB_GREEN_LED_GPIO_PIN, &led_config);
|
||
GPIO_PinInit(RGB_BLUE_LED_GPIO, RGB_BLUE_LED_GPIO_PIN, &led_config);
|
||
}
|
||
|
||
/**
|
||
* @brief 初始化控制LED的IO
|
||
* @param 无
|
||
* @retval 无
|
||
*/
|
||
void LED_GPIO_Config(void)
|
||
{
|
||
/* 初始化GPIO复用、属性、模式 */
|
||
LED_IOMUXC_MUX_Config();
|
||
LED_IOMUXC_PAD_Config();
|
||
LED_GPIO_Mode_Config();
|
||
}
|
||
|
||
|
||
/*********************************************END OF FILE**********************/
|