/* 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核去执行固件程序,下载时需要修改程序烧写地址。)
六、效果展示
程序下载后,开发板自动重启,闪灯效果见如下视频:


