STM32
直播中

刘丽

7年用户 1276经验值
私信 关注
[问答]

求大佬分享用stm32f103ZET6实现库函数流水灯的程序

求大佬分享用STM32f103ZET6实现库函数流水灯的程序

回帖(1)

李桂荣

2021-11-25 10:19:20
我用的stm32f103ZET6芯片
led给0亮
先在新建好的项目文件夹SYSTE里建一个led文件夹用于存放led.c和led.h
如:





接下来直接看代码吧!
main.c


#include "sys.h"
#include "delay.h"
#include "led.h"


int main(void)
{
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);        //系统时钟设置PLL作为系统时钟
        delay_init();                        //初始化延时函数       
        LED_flow();  //LED流动函数
}


led.c


#include "led.h"
#include "delay.h"


unsigned char led[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  //led显示码


//led初始化
void LED_Init(void){
        GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
        GPIO_InitStructure.GPIO_Pin = LED_flicker_GPIO;    //流水灯GPIO引脚配置
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出
        GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;  //最高输出速率50MHz       
        GPIO_Init(GPIOD, &GPIO_InitStructure);  //IO口初始化


}
//LED流动函数
void LED_flow(void){
        LED_Init();  //led初始化
        while(1)
        {
                int i;
                for(i=0;i<8;i++){
                //遍历数组让led流动显示
                GPIO_Write(GPIOD,led );
                delay_ms(200);   //延时控制流动速度
                       
                }
        }
}


led.h


#include "sys.h"


#define LED_flicker_GPIO GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7
//led初始化
void LED_Init(void);
//LED流动函数
void LED_flow(void);
举报

更多回帖

×
20
完善资料,
赚取积分