STM32实现流水灯效果

程序是在上一个文章的基础上进行的添加与修改,可以实现流水灯的效果,但是此方法有些笨拙,可以使用位带操作来实现。

/*******************************************************************************
*                 
*                 		       普中科技
--------------------------------------------------------------------------------
* 实 验 名		 : 使用库函数点亮一个LED
* 实验说明       : 
* 连接方式       : 
* 注    意		 : LED驱动文件在led.c内
*******************************************************************************/

#include "stm32f10x.h"
#include "led.h"

/*******************************************************************************
* 函 数 名         : main
* 函数功能		   : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/

/*******************************************************************************
* 函 数 名         : delay
* 函数功能		   : 延时函数,通过while循环占用CPU,达到延时功能
* 输    入         : i
* 输    出         : 无
*******************************************************************************/
void delay(u32 i)
{
	while(i--);
}

#if 0

int main()
{
	LED_Init();
	while(1)
	{
		GPIO_ResetBits(LED_PORT,GPIO_Pin_0);//点亮D1
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_0);//熄灭D1
	  delay(0xfffff);

	}
}

#else


int main()
{
	LED_Init();
	while(1)
	{
		GPIO_ResetBits(LED_PORT,GPIO_Pin_0);//点亮D1
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_0);//熄灭D1
	  delay(0xfffff);
		
		GPIO_ResetBits(LED_PORT,GPIO_Pin_1);//点亮D2
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_1);//熄灭D2
	  delay(0xfffff);
		
		GPIO_ResetBits(LED_PORT,GPIO_Pin_2);//点亮D3
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_2);//熄灭D3
	  delay(0xfffff);
		
		GPIO_ResetBits(LED_PORT,GPIO_Pin_3);//点亮D4
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_3);//熄灭D4
	  delay(0xfffff);
		
		GPIO_ResetBits(LED_PORT,GPIO_Pin_4);//点亮D5
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_4);//熄灭D5
	  delay(0xfffff);
		
		GPIO_ResetBits(LED_PORT,GPIO_Pin_5);//点亮D6
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_5);//熄灭D6
	  delay(0xfffff);
		
		GPIO_ResetBits(LED_PORT,GPIO_Pin_6);//点亮D7
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_6);//熄灭D7
	  delay(0xfffff);
		
		GPIO_ResetBits(LED_PORT,GPIO_Pin_7);//点亮D8
		delay(0xfffff);
		GPIO_SetBits(LED_PORT,GPIO_Pin_7);//熄灭D8
	  delay(0xfffff);
		

	}
}

#endif

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值