LOAD = 72 * time; SysTick->VAL = 0x00; SysTick->CTRL = 0x00000005; //打开时钟源..._stm32呼吸灯">
当前位置:   article > 正文

STM32入门之呼吸灯_stm32呼吸灯

stm32呼吸灯

呼吸灯的实现,主要是利用开个Led灯的时间不同,利用人眼睛的视觉残留效果以达到呼吸灯的效果

#include "stm32f10x.h"

void delay_us(u32 time) // 延时函数
{
	SysTick->LOAD = 72 * time;
	SysTick->VAL = 0x00;
	SysTick->CTRL = 0x00000005; //打开时钟源
	while( !(SysTick->CTRL & 0x00010000));
	
	SysTick->CTRL = 0x00000004; //关闭时钟源

}

void LED_Init()
{
	GPIO_InitTypeDef gpio;
	
	gpio.GPIO_Pin = GPIO_Pin_1;
	gpio.GPIO_Mode = GPIO_Mode_Out_PP;
	gpio.GPIO_Speed = GPIO_Speed_50MHz;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	
	GPIO_Init(GPIOB,&gpio);
	
}
int main(void)
{	
	int i=1;
	LED_Init();
	int flag = 0;
	while(1)
	{
		for(i=1 ;i<100;i++) //暗到明
		{
		GPIO_WriteBit(GPIOB,GPIO_Pin_1,(BitAction)(1));
		delay_us(i*10);
		GPIO_WriteBit(GPIOB,GPIO_Pin_1,(BitAction)(0));
		delay_us(2000-i*10);				
		}
	}
	
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/302287
推荐阅读
相关标签
  

闽ICP备14008679号