小会 · 2022年04月15日

【GD32F310开发板试用】驱动静态LED数码管

收到开发板有几天,今天开始测试开发板,先从GPIO的应用开始,来驱动静态LED数据显示。

一、硬件连接图

1.1、开发板使用PA0~PA7
 title=

1.2、扩展使用单个静态LED数码管
 title=

二、驱动程序

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

推荐阅读
关注数
10707
内容数
187
中国高性能通用微控制器领域的领跑者兆易创新GD系列芯片技术专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息