用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上来!