【GD32L233C-START评测】二、demo测试之GPIO流水灯+效果控制
[复制链接]
二、demo测试之GPIO流水灯+效果控制
从下载的资料可以了解到官方给的库非常全,并且都有相应的demo可供使用和参考
我们就从官方提供DEMO程序中 一个一个来做实验和评估
先从点灯开始吧
打开第一个工程”01_GPIO_Running_LED” 编译下载,keil5工程师都会用,我们就不详细介绍了
从demo的程序可以看出完全是通过控制GPIO加延迟来控制流水灯的
int main(void)
{
systick_config();
/* enable the LED GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOC);
/* configure LED GPIO pin */
gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_7 | GPIO_PIN_8);
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7 | GPIO_PIN_8);
gpio_mode_set(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_6 | GPIO_PIN_7);
gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6 | GPIO_PIN_7);
/* reset LED GPIO pin */
gpio_bit_reset(GPIOA, GPIO_PIN_7 | GPIO_PIN_8);
gpio_bit_reset(GPIOC, GPIO_PIN_6 | GPIO_PIN_7);
while(1) {
/* turn on LED1, turn off LED4 */
gpio_bit_set(GPIOA, GPIO_PIN_7);
gpio_bit_reset(GPIOC, GPIO_PIN_7);
delay_1ms(500);
/* turn on LED2, turn off LED1 */
gpio_bit_set(GPIOA, GPIO_PIN_8);
gpio_bit_reset(GPIOA, GPIO_PIN_7);
delay_1ms(500);
/* turn on LED3, turn off LED2 */
gpio_bit_set(GPIOC, GPIO_PIN_6);
gpio_bit_reset(GPIOA, GPIO_PIN_8);
delay_1ms(500);
/* turn on LED4, turn off LED3 */
gpio_bit_set(GPIOC, GPIO_PIN_7);
gpio_bit_reset(GPIOC, GPIO_PIN_6);
delay_1ms(500);
}
}
将程序编译下载看看效果吧
我们把GPIO的控制逻辑和控制延迟修改一下,看看效果
代码如下,
while(1) {
/* turn on LED1, turn off LED4 */
gpio_bit_set(GPIOA, GPIO_PIN_7);
gpio_bit_reset(GPIOA, GPIO_PIN_8);
delay_1ms(100);
/* turn on LED2, turn off LED1 */
gpio_bit_set(GPIOA, GPIO_PIN_8);
gpio_bit_reset(GPIOA, GPIO_PIN_7);
delay_1ms(100);
/* turn on LED3, turn off LED2 */
gpio_bit_set(GPIOC, GPIO_PIN_6);
gpio_bit_reset(GPIOA, GPIO_PIN_8);
delay_1ms(100);
/* turn on LED4, turn off LED3 */
gpio_bit_set(GPIOC, GPIO_PIN_7);
gpio_bit_reset(GPIOC, GPIO_PIN_6);
delay_1ms(100);
/* turn on LED3, turn off LED4 */
gpio_bit_set(GPIOC, GPIO_PIN_6);
gpio_bit_reset(GPIOC, GPIO_PIN_7);
delay_1ms(100);
/* turn on LED2, turn off LED3 */
gpio_bit_set(GPIOA, GPIO_PIN_8);
gpio_bit_reset(GPIOC, GPIO_PIN_6);
delay_1ms(100);
}
看下效果吧
看着炫酷多了!!
|