【DigiKey&NXP】NXP FRDM-K32L3A6开发板-开箱篇(三)

    /* PORTA24 (pin D6) is configured as PTA24 */
    PORT_SetPinMux(PORTA, 24U, kPORT_MuxAsGpio);
    PORT_SetPinMux(PORTA, 23U, kPORT_MuxAsGpio);
	PORT_SetPinMux(PORTA, 22U, kPORT_MuxAsGpio);

    /* PORTC7 (pin N2) is configured as LPUART0_RX */
    PORT_SetPinMux(PORTC, 7U, kPORT_MuxAlt3);

    /* PORTC8 (pin P3) is configured as LPUART0_TX */
    PORT_SetPinMux(PORTC, 8U, kPORT_MuxAlt3);
}

“gpio_led_output.c”源文件中增加延时时间,并在main函数增加相应的管脚初始化函数,循环闪烁,控制灯色变化。

void delay(void)
{
    volatile uint32_t i = 0;
    for (i = 0; i < 1200000; ++i)
    {
        __asm("NOP"); /* delay */
    }
}

int main(void)
{
    /* Define the init structure for the output LED pin*/
    gpio_pin_config_t led_config = {
        kGPIO_DigitalOutput,
        0,
    };

    /* Board pin, clock, debug console init */
    BOARD_InitHardware();

    /* Print a note to terminal. */
    PRINTF("\r\n GPIO Driver example\r\n");
    PRINTF("\r\n The LED is blinking.\r\n");

    /* Init output LED GPIO. */
    GPIO_PinInit(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PIN, &led_config);
	GPIO_PinInit(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PIN, &led_config);
	GPIO_PinInit(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PIN, &led_config);

    while (1)
    {
        delay();
        GPIO_PortToggle(BOARD_LED1_GPIO, 1u << BOARD_LED1_GPIO_PIN);
		delay();
		GPIO_PortToggle(BOARD_LED2_GPIO, 1u << BOARD_LED2_GPIO_PIN);
		delay();
		GPIO_PortToggle(BOARD_LED3_GPIO, 1u << BOARD_LED3_GPIO_PIN);
    }
}

2、 编译工程

完成修改后,直接编译即可。

3、 固件下载

将固件下载到开发板中,Debug中选择CMSIS-DAP Debugger,默认下载算法即可。(注意:由于使用cm0plus核,下载的入口地址不一样,因此如果采用cm0plus核去执行固件程序,下载时需要修改程序烧写地址。)

六、效果展示

程序下载后,开发板自动重启,闪灯效果见如下视频: