webber310 发表于 2022-3-9 18:23

【GD32L233C-START评测】二、demo测试之GPIO流水灯+效果控制

<p style="text-align: center;"><span style="font-size:20px;">二、demo测试之GPIO流水灯+效果控制</span></p>

<p>从下载的资料可以了解到官方给的库非常全,并且都有相应的demo可供使用和参考</p>

<p></p>

<p>我们就从官方提供DEMO程序中&nbsp;一个一个来做实验和评估</p>

<p></p>

<p>先从点灯开始吧</p>

<p>打开第一个工程&rdquo;01_GPIO_Running_LED&rdquo; 编译下载,keil5工程师都会用,我们就不详细介绍了<br />
从demo的程序可以看出完全是通过控制GPIO加延迟来控制流水灯的</p>

<pre>
<code>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);
    }
}</code></pre>

<p>将程序编译下载看看效果吧</p>

<p>&nbsp;我们把GPIO的控制逻辑和控制延迟修改一下,看看效果</p>

<p>代码如下,</p>

<pre>
<code>    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);
                               

    }</code></pre>

<p>看下效果吧</p>

<p></p>

<p>看着炫酷多了!!&nbsp;</p>

Jacktang 发表于 2022-3-9 19:56

<p>接下来再继续测</p>

soso 发表于 2022-3-10 10:16

<p>是有科技感了。</p>
页: [1]
查看完整版本: 【GD32L233C-START评测】二、demo测试之GPIO流水灯+效果控制