ARM技术论坛
直播中

张国厚

7年用户 1400经验值
私信 关注
[经验]

用GD32F427开发板做一个会唱歌跳舞的机器

用GD32F427开发板做一个会唱歌跳舞的机器,分步来做,先做开始部分。

接1号舵机(GPIOC, GPIO_PIN_7);
接MP3模块(GPIOC, GPIO_PIN_10);
接2号舵机(GPIOC, GPIO_PIN_11);
接3号舵机(GPIOC, GPIO_PIN_1);
接4号舵机(GPIOC, GPIO_PIN_3);

#include "gd32f4xx.h"
#include "gd32f427v_start.h"
#include "systick.h"
#include <stdio.h>

/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/

void tiaowu()  //开始跳舞
    {
                          for(int i=0;i<30;i++)

                       {    

                     gpio_bit_set(GPIOC, GPIO_PIN_7);//1开始跳舞
                     delay_1ms(1);
                     gpio_bit_reset(GPIOC, GPIO_PIN_7);
                     delay_1ms(19);
                    
                     }        
                                    //     delay_1ms(200);
                   for(int i=0;i<30;i++)

                      {                                 
                                   gpio_bit_set(GPIOC, GPIO_PIN_11);//2开始跳舞
                     delay_1ms(2);
                     gpio_bit_reset(GPIOC, GPIO_PIN_11);
                     delay_1ms(18);
                                     
                     }        
                              //        delay_1ms(200);        
                                    for(int i=0;i<30;i++)

                       {    

                     gpio_bit_set(GPIOC, GPIO_PIN_3);//3开始跳舞
                     delay_1ms(1);
                     gpio_bit_reset(GPIOC, GPIO_PIN_3);
                     delay_1ms(19);
                    
                     }    
                   //   delay_1ms(200);                                        
                   for(int i=0;i<30;i++)

                      {                                 
                                   gpio_bit_set(GPIOC, GPIO_PIN_1);//4开始跳舞
                     delay_1ms(2);
                     gpio_bit_reset(GPIOC, GPIO_PIN_1);
                     delay_1ms(18);
                                     
                     }    
               //        delay_1ms(200);            


                 for(int i=0;i<30;i++)

                       {    

                     gpio_bit_set(GPIOC, GPIO_PIN_7);//1开始跳舞第二组动作
                     delay_1ms(2);
                     gpio_bit_reset(GPIOC, GPIO_PIN_7);
                     delay_1ms(18);
                    
                     }        
                                //         delay_1ms(200);
                   for(int i=0;i<30;i++)

                      {                                 
                                   gpio_bit_set(GPIOC, GPIO_PIN_11);//2开始跳舞第二组动作
                     delay_1ms(1);
                     gpio_bit_reset(GPIOC, GPIO_PIN_11);
                     delay_1ms(19);
                                     
                     }        
                                  //    delay_1ms(200);                

                    for(int i=0;i<30;i++)

                       {    

                     gpio_bit_set(GPIOC, GPIO_PIN_3);//3开始跳舞第二组动作
                     delay_1ms(2);
                     gpio_bit_reset(GPIOC, GPIO_PIN_3);
                     delay_1ms(18);
                    
                     }    
                  //    delay_1ms(200);                                        
                      for(int i=0;i<30;i++)

                      {                                 
                                   gpio_bit_set(GPIOC, GPIO_PIN_1);//4开始跳舞第二组动作
                     delay_1ms(1);
                     gpio_bit_reset(GPIOC, GPIO_PIN_1);
                     delay_1ms(19);
                                            
                                     
                     }    
                //       delay_1ms(200);            
                                                          
 
 }        
    
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_0);
    
    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_7);

      gpio_bit_set(GPIOC, GPIO_PIN_10);
    
      gpio_bit_reset(GPIOC, GPIO_PIN_11);
        
        gpio_bit_reset(GPIOC, GPIO_PIN_1);
        
        gpio_bit_reset(GPIOC, GPIO_PIN_3);
        
    while(1) {
    
              /* check whether the key is pressed */
        if(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_0))
                    {
            delay_1ms(100);

            /* check whether the key is pressed */
            if(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_0))
                            {
                
                             gpio_bit_reset(GPIOC, GPIO_PIN_10); //音乐播放
                                
                            for(int i=0;i<30;i++)tiaowu();//开始跳30组舞蹈
              }       
                                         
          }
   
            
    }        
   
}

原作者:兆易创新GD32 MCU 还没吃饭

更多回帖

发帖
×
20
完善资料,
赚取积分