嵌入式STM32—第一天GPIO实现led呼吸灯

   日期:2021-03-06     浏览:95    评论:0    
核心提示:1.软件及工程环境搭建就不介绍了,可以直接用现成的链接:https://pan.baidu.com/s/1GaSYpNm6yh-lZZmqRdXxvQ提取码:dy632.GPIO实现led呼吸灯首先添加一下库函数看一下开发板原理图得到对应的PC10,PC11,PC13什么都不要说直接上代码先LED初始化void LEDInit(void){ GPIO_InitTypeDef GPIO;//自定义GPIO RCC_AHB1PeriphClockCmd(RCC_AH

1.软件及工程环境搭建

  • 就不介绍了,可以直接用现成的
    链接:https://pan.baidu.com/s/1GaSYpNm6yh-lZZmqRdXxvQ
    提取码:dy63
  • 相关库文件
    链接:https://pan.baidu.com/s/19PLYdtiuSoZZGdVD7_tumQ
    提取码:mrw8

2.GPIO实现led呼吸灯

  • 首先添加一下库函数
  • 看一下开发板原理图


    得到对应的PC10,PC11,PC13
  • 什么都不要说直接上代码
  • 先LED初始化
void LEDInit(void)
{ 
		GPIO_InitTypeDef GPIO;//自定义GPIO 
		RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//外部时钟C使能
		GPIO.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10;//选择引脚
		GPIO.GPIO_Mode = GPIO_Mode_OUT;//选择模式
		GPIO.GPIO_OType = GPIO_OType_PP;//选择类型寄存器 
		GPIO.GPIO_Speed = GPIO_Speed_50MHz;//选择速度
		GPIO.GPIO_PuPd = GPIO_PuPd_NOPULL;//选择上下拉
		GPIO_Init(GPIOC,&GPIO);//写入寄存器
		GPIO_SetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10);//输出高电频关灯
		//GPIO_ResetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10); //输出低电频开灯 //输出低电频关灯
}
  • 给一个自定义的延迟函数
void dalyg(int n)
{ 
   	int i;
   	for(i=0;i<n;i++);
}
  • 实现呼吸灯功能
void ledbreath(int t,int i)
{ 
   		GPIO_ResetBits(GPIOC,GPIO_Pin_13);
   		GPIO_SetBits(GPIOC,GPIO_Pin_13);
   		GPIO_ResetBits(GPIOC,GPIO_Pin_11);
   		GPIO_SetBits(GPIOC,GPIO_Pin_11);
   		GPIO_ResetBits(GPIOC,GPIO_Pin_10);
   		GPIO_SetBits(GPIOC,GPIO_Pin_10);
   		dalyg(i);
   		GPIO_SetBits(GPIOC,GPIO_Pin_13);
   		GPIO_ResetBits(GPIOC,GPIO_Pin_13);
   		GPIO_SetBits(GPIOC,GPIO_Pin_11);
   		GPIO_ResetBits(GPIOC,GPIO_Pin_11);
   		GPIO_SetBits(GPIOC,GPIO_Pin_10);
   		GPIO_ResetBits(GPIOC,GPIO_Pin_10);
   		dalyg(t-i);
}
  • 主函数调用相关的函数
LEDInit();
int DeyTim=8000,i;
while(1)
  	{ 
  			for(i=1;i<DeyTim;i+=1)//这两个参数随便调,只要效果明显就行了,先开始i增加占空比在增大
       	  { 
      			  ledbreath(DeyTim,i);   
      	  }  
  		     dalyg(100);
  			
     		  for(i=DeyTim;i>1;i-=1)//后占空比开始减小
     	   { 
      		       ledbreath(DeyTim,i);   
    	   }	
  			  dalyg(100);
  		}
  • 到此完美实现led呼吸灯,最后感谢大家阅读,如果需要其他相关资料请联系我。
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服