打印

循环流水灯顺序问题

[复制链接]
367|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
roucun|  楼主 | 2020-4-7 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
根据教材上的代码,自己写了一下循环流水灯的代码,亮灯顺序应该是:红、绿、蓝、红、蓝、绿、紫、黄、白、青、黑,但是烧到开发板上后,是先亮了白、青、蓝、红、蓝、绿、紫、黄、白、青、黑,然后才正式的循环的,问了一个学长,说是时钟配置的问题,但是自己看了又不知道是什么问题,亮单个灯的时候是正常的,以下是代码:
main.c的代码:
#include "stm32f10x.h"
#include "bsp_led.h"
#define SOFT_DELAY       Delay(0xFFFFFF);
void Delay(nCount)
{
for (; nCount !=0;nCount--);
}
int main(void)
{
LED_GPIO_Config();

while(1)
{
  LED1_ON;//red
  SOFT_DELAY;
  LED1_OFF;
  
  LED2_ON;//green
  SOFT_DELAY;
  LED2_OFF;
  
  LED3_ON;//blue
  SOFT_DELAY;
  LED3_OFF;
  
  LED_RED;
  SOFT_DELAY;
  
  LED_BLUE;
  SOFT_DELAY;
  
  LED_GREEN;
  SOFT_DELAY;
  
  LED_PURPLE;
  SOFT_DELAY;
  
  LED_YELLOW;
  SOFT_DELAY;
  
  LED_WHITE;
  SOFT_DELAY;
  
  LED_CYAN;
  SOFT_DELAY;
  
  LED_RGBOFF;
  SOFT_DELAY;
}
}

bsp_led.c的代码:
#include "bsp_led.h"
#include "stm32f10x.h"

void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(LED1_GPIO_CLK|LED2_GPIO_CLK|LED3_GPIO_CLK,ENABLE);
GPIO_InitStructure.GPIO_Pin=LED1_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=LED2_GPIO_PIN;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=LED3_GPIO_PIN;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(LED3_GPIO_PORT, &GPIO_InitStructure);
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

421

主题

446

帖子

0

粉丝