STM32 用c语言控制4个LED灯从左向右无限流动

  在用c语言写LED流水灯的前提条件是配置好其他环境,这里我就不说环境了,

想让LED灯无限循环时,首先要想到的是无限循环函数,我这里利用的是for函数

无限循环。

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

int main(void)
{
  LED_Init();
  delay_init();
  int i;
  for(i=0;;i++)
  {
    if(i%5==1)
    {
      LED2=0;
      LED3=1;
      LED4=1;
      LED5=1;
      delay_ms(500);
    }
    else if(i%5==2)
    {
      LED2=1;
      LED3=0;
      LED4=1;
      LED5=1;
      delay_ms(500);
    }
    else if(i%5==3)  
    {
      LED2=1;
      LED3=1;
      LED4=0;
      LED5=1;
      delay_ms(500);
    }
    else if(i%5==4)
    {
      LED2=1;
      LED3=1;
      LED4=1;
      LED5=0;
      delay_ms(500);
    }
    else if(i%5==0)
    {
      LED2=0;
      LED3=0;
      LED4=0;
      LED5=0;
      delay_ms(500);
    }
  }
}

时间: 2024-09-28 17:31:06

STM32 用c语言控制4个LED灯从左向右无限流动的相关文章

Ardunio控制RGB的LED灯显示彩虹渐变色.

由于我使用的是共阴极的RGB LED,如果你的是共阳极的,接线的时候要注意一下. 其他没什么不同 //定义RGB色彩的输出I/O int redPin = 11; int greenPin = 10; int bluePin = 9; //标记颜色变化的方式,增加值还是减小值 bool redBool =false; bool greenBool=true; bool blueBool=false; //颜色值,初始化为0,127,255 int redVal =0; int greenVal=

LED灯C语言的点亮方式

在上一篇进行了汇编语言的编写后,这一节采用C语言来编写,毕竟C语言才是我们使用最多的语言. 本节要点: 1)用C语言方式点亮LED灯: 2)分析反汇编代码:了解函数调用栈,深入的分析代码: 3)编写C语言的库函数版本,方便以后开发: 首先贴出一段代码: start.s .text .global _start _start: /* 设置内存: sp 栈 */ ldr sp, =4096 /* nand启动 */ // ldr sp, =0x40000000+4096 /* nor启动 */ /*

单片机远程控制步进电机、LED灯和蜂鸣器

通过采用C#语言实现的上位机控制单片机的步进电机模块.LED灯和蜂鸣器模块,使步进电机进行正.反转和停止并控制转速:LED灯模块进行有选择的呼吸式表达:蜂鸣器模块的开始和终止. 上位机通过串口和自定义的通信协议(8字节)控制单片机的步进电机.LED灯和蜂鸣器模块.其中在控制步进电机的过程中,为了使操作能够及时响应,使用了INT0中断来进行及时性速度响应:LED灯使用位运算控制灯的闪烁位置,合理利用了单片机的模块和操作. 注意:由于定时器个数的限制,没能控制更多的模块. #include<reg5

[51单片机] nRF24L01 无线模块 串口法命令 通过无线控制另一个的灯

>_<!概述: 这是在上一个的基础上通过按键发送4种不同命令来控制接收端的LED灯亮的改进版(上一个:http://www.cnblogs.com/zjutlitao/p/3840013.html),这里俺把按键发命令给去掉,然后加入一个串口通信的功能,PC通过串口给发送端发送命令,然后发送端通过无线将命令发给接收端来实现控制,这里接收端和上一个例程中的一样,只是在发送端的代码里去除了按键控制,变成了串口控制. >_<!发送端电路: >_<!接收电路图: >_&l

1.2.第一个实验——点亮LED灯

1.2.第一个实验--点亮LED灯 预备知识: (1)位.字节.IO端口.IO口 字节是内存管理的最小单位,一个字节是八位,每一位可以存放一个二进制位(0或者1).一个IO端口包括一组IO口,一般一组是八个,一个端口就是一组IO引脚.一个IO口对应一个二进制位,一个IO端口对应一个字节. (2)二进制和十六进制的转换 一个十六进制位等于四个二进制位,比如0xff对应二进制是1111 1111 实验目的:点亮八颗LED灯 实验过程分析: (1)八颗LED分别由八位二进制位来控制,二进制位是1时LE

74HC595点亮8个LED灯

一.原理介绍 595有两个寄存器,都是8位的,如下所示: 595是串入并出带有锁存功能移位寄存器,它的使用方法简单: - -  在正常使用时 /SCLR接高电平,/G接低电平. - -  从SER每输入一位数据,串行输入时钟SCK上升沿有效一次,直到八位数据输入完毕 - - 输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端. 不同的595引脚名称会不一样,但是功能是一样的.大家看引脚序号即可.以下是595引脚图: 595具体使用的步骤:第一步:目的:将要准备输入的位数据移入74HC595

PIC12F629帮我用C语言写个程序,控制三个LED亮灭

http://power.baidu.com/question/240873584599025684.html?entry=browse_difficult PIC12F629帮我用C语言写个程序,控制三个LED亮灭! 2014-12-31 16:05DINZEYU  分类:C/C++ | 浏览 87 次 C语言VC++ 按键按一次LED1低亮,按两次高亮,按三次2HZ闪,按三次关,按键长按3秒松开LED2亮,长按3秒松开LED2灭,按键长按5秒松开LED3亮,长按5秒松开LED3灭,每个功能独

嵌入式Linux学习入门:控制LED灯

记录自己linux学习过程,让自己能够一直坚持下去 1.原理图分析: nLED_1, nLED_2, nLED_4, 给低电平则对应LED灯亮,高电平则对应LED灯灭, S3C2440芯片GPF4-GPF6对应nLED_1, nLED_2, nLED_4, 所以代码里面操作GPF4-GPF6就可以控制LED灯亮灭. 2.写代码前了解事项 第一步:将GPF0-GPF4配置为输出功能 第二步:控制GPF0-GPF4输出低电平 3.编写代码 1 .text 2 .global _start 3 _st

[stm32][ucos] 1、基于ucos操作系统的LED闪烁、串口通信简单例程

* 内容简述: 本例程操作系统采用ucos2.86a版本, 建立了5个任务            任务名                                             优先级            APP_TASK_START_PRIO                               2            主任务                          Task_Com1_PRIO