目录
1.LED灯引脚
开发板LPCXpresso55S69的原理图:
蓝灯:PIO1_4
红灯:PIO1_6
绿灯:PIO1_7
2.点亮LED
2.1 通过board.h函数调用实现
如下是亮红灯的代码示例,拉低点亮,蓝灯、绿灯相似。具体代码可以通过board.h文件查看具体实现方法,如下函数本质也是通过GPIO拉高拉低来实现的,只是封装成对于的函数。
#define BOARD_LED_RED_GPIO_PORT 1U
#ifndef BOARD_LED_RED_GPIO_PIN
#define BOARD_LED_RED_GPIO_PIN 6U
/* Initialize GPIO PINS for RGB LED*/
LED_RED_INIT(0x0U);
LED_BLUE_INIT(0x1U);
LED_GREEN_INIT(0x1U);
/* turn off red */
LED_RED_ON();
/* turn off red */
LED_RED_OFF();
2.1 直接GPIO拉高拉倒实现
通过设置引脚高低实现LED开关,绿灯和蓝灯方法相同。
gpio_pin_config_t gpio_out_config_low = {
.pinDirection = kGPIO_DigitalOutput,
.outputLogic = 0U
};
/* 初始化GPIO */
GPIO_PinInit(GPIO, BOARD_LED_RED_GPIO_PORT, BOARD_LED_RED_GPIO_PIN, &gpio_out_config_low);
/* GPIO引脚的输出电平设置为逻辑1或0 */
GPIO_PinWrite(GPIO, BOARD_LED_RED_GPIO_PORT, BOARD_LED_RED_GPIO_PIN, 1);
3.LPC55S69控制三色灯轮询示例
如下代码是三色灯轮询示例,间隔时间为1S
static void delay_ms(uint32_t ms)
{
for (uint32_t i = 0; i < ms; i++)
{
SDK_DelayAtLeastUs(1000, SystemCoreClock);
}
}
/* Initialize GPIO PINS for RGB LED*/
LED_RED_INIT(0x1U);
LED_BLUE_INIT(0x1U);
LED_GREEN_INIT(0x1U);
while (1)
{
LED_RED_ON();
delay_ms(1000);
LED_RED_OFF();
delay_ms(1000);
LED_BLUE_ON();
delay_ms(1000);
LED_BLUE_OFF();
delay_ms(1000);
LED_GREEN_ON();
delay_ms(1000);
LED_GREEN_OFF();
delay_ms(1000);
}
LPC55S69三色灯轮询代码 如下: