收到开发板有几天,今天开始测试开发板,先从GPIO的应用开始,来驱动静态LED数据显示。
一、硬件连接图
1.1、开发板使用PA0~PA7
1.2、扩展使用单个静态LED数码管
二、驱动程序
2.1、leds.c
#include "gd32f3x0.h"
#include "gd32f310g_start.h"
#include "systick.h"
#include "leds.h"
uint8_t i=0;
uint8_t disp_dat[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void init_leds(void)
{
rcu_periph_clock_enable(RCU_GPIOA);
gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
}
void leds_test(void)
{
uint8_t pta;
pta=gpio_output_port_get(GPIOA);
gpio_port_write(GPIOA,(pta&0xff00)|disp_dat[i]);
delay_1ms(1000);
i++;
if(i>9)
{
i=0;
}
}
2.2、main.c
#include "gd32f3x0.h"
#include "gd32f310g_start.h"
#include "systick.h"
#include "leds.h"
int main(void)
{
//uint16_t pta=0;
//uint8_t i=0;
//gd_led_config();
systick_config();
init_leds();
while(1)
{
leds_test();
}
}
三、程序运行
https://www.bilibili.com/video/BV1bi4y1U7PA/?aid=553166360&cid=576517560&page=1