#ifndef __BSP_LED_H #define __BSP_LED_H #include "fsl_common.h" /********************************************************* * LED GPIO端口、引脚号及IOMUXC复用宏定义 *********************************************************/ #define CORE_BOARD_LED_GPIO GPIO1 #define CORE_BOARD_LED_GPIO_PIN (9U) #define CORE_BOARD_LED_IOMUXC IOMUXC_GPIO_AD_B0_09_GPIO1_IO09 #define RGB_RED_LED_GPIO GPIO1 #define RGB_RED_LED_GPIO_PIN (24U) #define RGB_RED_LED_IOMUXC IOMUXC_GPIO_AD_B1_08_GPIO1_IO24 #define RGB_GREEN_LED_GPIO GPIO1 #define RGB_GREEN_LED_GPIO_PIN (25U) #define RGB_GREEN_LED_IOMUXC IOMUXC_GPIO_AD_B1_09_GPIO1_IO25 #define RGB_BLUE_LED_GPIO GPIO1 #define RGB_BLUE_LED_GPIO_PIN (10U) #define RGB_BLUE_LED_IOMUXC IOMUXC_GPIO_AD_B0_10_GPIO1_IO10 #define LED_DELAY_COUNT 70000000 /** 控制LED灯亮灭的宏, * LED低电平亮,设置ON=0,OFF=1 * 若LED高电平亮,把宏设置成ON=1 ,OFF=0 即可 */ #define ON 1 #define OFF 0 /* 使用标准的固件库控制IO 使用范例:CORE_BOARD_LED(ON); */ #define CORE_BOARD_LED(a) if (a) \ GPIO_PinWrite(CORE_BOARD_LED_GPIO, CORE_BOARD_LED_GPIO_PIN, 0U);\ else \ GPIO_PinWrite(CORE_BOARD_LED_GPIO, CORE_BOARD_LED_GPIO_PIN, 1U); #define RGB_RED_LED(a) if (a) \ GPIO_PinWrite(RGB_RED_LED_GPIO, RGB_RED_LED_GPIO_PIN, 0U);\ else \ GPIO_PinWrite(RGB_RED_LED_GPIO, RGB_RED_LED_GPIO_PIN, 1U); #define RGB_GREEN_LED(a) if (a) \ GPIO_PinWrite(RGB_RGB_GREEN_LED_GPIO, RGB_RGB_GREEN_LED_GPIO_PIN, 0U);\ else \ GPIO_PinWrite(RGB_GREEN_LED_GPIO, RGB_GREEN_LED_GPIO_PIN, 1U); #define RGB_BLUE_LED(a) if (a) \ GPIO_PinWrite(RGB_BLUE_LED_GPIO, RGB_BLUE_LED_GPIO_PIN, 0U);\ else \ GPIO_PinWrite(RGB_BLUE_LED_GPIO, RGB_BLUE_LED_GPIO_PIN, 1U); /* 直接操作寄存器的方法控制IO */ #define digitalHi(p,i) {p->DR |= (1U << i);} //输出为高电平 #define digitalLo(p,i) {p->DR &= ~(1U << i);} //输出低电平 #define digitalToggle(p,i) {p->DR ^= (1U<