野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6681|回复: 1

STM32 GPIO实现流水灯 仿真错误!!

[复制链接]
发表于 2022-7-20 01:30:52 | 显示全部楼层 |阅读模式
任务要求:使用STM32F103R6芯片的PB0~PB9引脚分别接 10 个LED的阴极,通过程序控制实现跑马灯效果设计与调试。跑马灯效果就是先一个一个点亮,直至全部点亮;再一个一个熄灭;循环上述过程。

/*-----pmd.c-------*/
#include "stm32f10x.h"
#include "./user/bsp_led.h"

int main(void)
{
        LED_UserConfig();
        while(1)
        {
                LED_Display();
        }
}

/*------bsp_led.c--------*/
#include "./user/bsp_led.h"     // 此处需要使用绝对路径,不需要加头文件到工程了
                                               
uint16_t code[10]={0xFFFE,0xFFFC,0xFFF8,0xFFF0,0xFFE0,0xFFC0,0xFF80,0xFF00,0xFE00,0xFC00};
uint16_t i,j;

void LED_UserConfig(void)
{
        /* 声明一个GPIO结构体 */
        GPIO_InitTypeDef GPIO_InitStruct;
       
        /* 使能GPIO时钟 */
        RCC_APB2PeriphClockCmd(LED_GPIO_CLK, ENABLE);
       
        /* 初始化GPIO结构体 */
        GPIO_InitStruct.GPIO_Pin = 0x03FF;                        // GPIOx_BRR<0~9端口位清除>设为0x3FF
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;  // 配置为推挽输出
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; // 配置GPIO速度为50MHz

        /* 初始化GPIO */
        GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
}

void LED_Display(void)
{
        for(i=0;i<10;i++)
        {
                GPIO_Write(LED_GPIO_PORT,code[i]);
                Delay(100);
        }
        for(j=10;j>0;j--)
        {
                GPIO_Write(LED_GPIO_PORT,code[j]+0x8000);
                Delay(100);
        }
}

// 延时函数
void Delay(unsigned int count)
{
        unsigned int i;
        for(; count!=0; count--)
        {
                i = 5000;
                while(i--);
        }
}

/*-------bsp_led.h----------*/
#ifndef __BSP_LED_H
#define __BSP_LED_H

#include "stm32f10x.h"

#define LED_GPIO_CLK         RCC_APB2Periph_GPIOB
#define LED_GPIO_PORT      GPIOB

/* 函数声明 */
void Delay(unsigned int count);
void LED_UserConfig(void);
void LED_Display(void);


#endif /* __BSP_LED_H*/


仿真结果:


回复

使用道具 举报

 楼主| 发表于 2022-7-20 20:54:36 | 显示全部楼层
Snipaste_2022-07-20_20-51-18.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-29 05:30 , Processed in 0.043089 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表