【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程序中 一个一个来做实验和评估</p>
<p></p>
<p>先从点灯开始吧</p>
<p>打开第一个工程”01_GPIO_Running_LED” 编译下载,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> 我们把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>看着炫酷多了!! </p>
<p>接下来再继续测</p>
<p>是有科技感了。</p>
页:
[1]