接上篇《GD32F427开发板试用+唱歌跳舞主控3舞蹈流畅度调试》喝完水,再加个非接触式红外传感器。先控制一下试试。
https://www.bilibili.com/vide...
#include "gd32f4xx.h"
#include "gd32f427v_start.h"
#include "systick.h"
#include <stdio.h>
void tiaowu() //开始跳舞
{
int fanyengshjian =10;//设置舞蹈动作连贯流畅度
for(int i=0;i<fanyengshjian;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<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_11);//2开始跳舞
delay_1ms(2);
gpio_bit_reset(GPIOC, GPIO_PIN_11);
delay_1ms(18);
}
for(int i=0;i<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_3);//3开始跳舞第二组动作
delay_1ms(3);
gpio_bit_reset(GPIOC, GPIO_PIN_3);
delay_1ms(18);
}
// delay_1ms(200);
for(int i=0;i<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_1);//4开始跳舞第二组动作
delay_1ms(1);
gpio_bit_reset(GPIOC, GPIO_PIN_1);
delay_1ms(19);
}
for(int i=0;i<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_11);//2开始跳舞第二组动作
delay_1ms(1);
gpio_bit_reset(GPIOC, GPIO_PIN_11);
delay_1ms(19);
}
for(int i=0;i<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_3);//3开始跳舞第二组动作
delay_1ms(3);
gpio_bit_reset(GPIOC, GPIO_PIN_3);
delay_1ms(18);
}
for(int i=0;i<fanyengshjian;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<fanyengshjian;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<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_11);//2开始跳舞
delay_1ms(2);
gpio_bit_reset(GPIOC, GPIO_PIN_11);
delay_1ms(18);
}
for(int i=0;i<fanyengshjian;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<fanyengshjian;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<fanyengshjian;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<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_3);//3开始跳舞第二组动作
delay_1ms(3);
gpio_bit_reset(GPIOC, GPIO_PIN_3);
delay_1ms(18);
}
// delay_1ms(200);
for(int i=0;i<fanyengshjian;i++)
{
gpio_bit_set(GPIOC, GPIO_PIN_1);//4开始跳舞第二组动作
delay_1ms(1);
gpio_bit_reset(GPIOC, GPIO_PIN_1);
delay_1ms(19);
}
}
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_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);
gpio_bit_set(GPIOC, GPIO_PIN_5); //为换歌功能添加端口
delay_1ms(800);
while(1) {
/* check whether the key is pressed */
if(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_8))
{
delay_1ms(200);
/* check whether the key is pressed */
if(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_8))
{
gpio_bit_reset(GPIOC, GPIO_PIN_10); //开始音乐播放
delay_1ms(600);
gpio_bit_reset(GPIOC, GPIO_PIN_5); //播放下一首音乐
delay_1ms(600);
gpio_bit_set(GPIOC, GPIO_PIN_5); //还原“播放下一首”端口控制
delay_1ms(600);
gpio_bit_set(GPIOC, GPIO_PIN_10); //还原“开始音乐播放”端口控制
// for(int i=0;i<3;i++)tiaowu();//开始跳3组舞蹈
}
}
while(RESET == gpio_input_bit_get(GPIOA, GPIO_PIN_0)) { }
}
}
忙里偷闲加个传感器,平时很忙只有挤时间弄。
GD32F427开发板试用+唱歌跳舞主控5加非接触式换歌功能
<[GD32F427开发板试用+唱歌跳舞主控4加非接触式红外传感器]>(https://aijishu.com/a/1060000...)
GD32F427开发板试用+唱歌跳舞主控3舞蹈流畅度调试
GD32F427开发板试用+唱歌跳舞主控2搭建实物连线,制作试验品