用GD32F427开发板开发一款可以声控的舵机阀门,看看是否比较好上手。
360度舵机一个,接PC1口。麦克风拾音器一枚,接PA8口。
接下来看程式好写不好写,先写端口配置命令,再写功能性语句。
https://www.bilibili.com/vide...
下次再传关闸门的视频。
#include "gd32f4xx.h"
#include "gd32f427v_start.h"
#include "systick.h"
#include <stdio.h>
int main(void)
{
    /* configure systick */
    systick_config();
    /* enable the  GPIO clock */
    rcu_periph_clock_enable(RCU_GPIOC);
    /* configure GPIO port */
     rcu_periph_clock_enable(RCU_GPIOA);
    /* configure key pin as input */
    gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_8);
    
    gpio_mode_set(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_ALL);
    
    gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_ALL);
   
       /* reset GPIO pin */
        
        gpio_bit_reset(GPIOC, GPIO_PIN_1);
        
         
        
    while(1) {            
            
                                                                
              /* check whether the key is pressed */
        if(SET == gpio_input_bit_get(GPIOA, GPIO_PIN_8))
                    {
            delay_1ms(2800);
            /* check whether the key is pressed */
            if(SET == gpio_input_bit_get(GPIOA, GPIO_PIN_8))
                            {
                  for(int i=0;i<50;i++)
                              { 
                                 
               gpio_bit_set(GPIOC, GPIO_PIN_1);//开始闸门正向动作
                     delay_1ms(2);
                     gpio_bit_reset(GPIOC, GPIO_PIN_1);
                     delay_1ms(18);
                           }
                     }       
                            else
                  {
                     for(int i=0;i<30;i++)
                              { 
    
                                  gpio_bit_set(GPIOC, GPIO_PIN_1);//开始反向闸门动作
                     delay_1ms(1);
                     gpio_bit_reset(GPIOC, GPIO_PIN_1);
                     delay_1ms(19);
                               }   
                             }
                            
          }
                    
        
          while(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_0))    {    }
        
   
            
    }        
   
}看来GD32F427开发板还是比较好上手使用的,力挺国产!今后项目都移植到GD32F427上来!

 
                