stm32_LED闪烁

介绍了stm32 LED闪烁的程序,亲测可行

操作方法

  • 01

    程序总体框架: 先是介绍程序的总体框架,随后会有每一步的详解: 框架如下: /*main.c文件***********************************************************/ #include "led.h" int main(void) { LED_Init(); while(1) { led_display(); } } /*led.c文件*************************************************************/ #include "led.h" /*延时函数*/void delay(u32 i){ while(i--);} /*LED初始化函数*/ void LED_Init() { SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOD,&GPIO_InitStructure); } /*LED驱动函数*/ void led_display() { GPIO_SetBits(GPIOD,GPIO_Pin_All); delay(6000000); GPIO_ResetBits(GPIOD,GPIO_Pin_All); delay(6000000); } /*led.h文件***********************************************************/ #ifndef _led_H #define _led_H #include <stm32f10x.h> void LED_Init(void); void led_display(void); #endif 框架详解: 在led.h文件中有led.c文件中的函数声明,放在这个文件中的目的是为了方便在其他文件中调用led.c文件中的函数

  • 02

    配置系统时钟: 在stm32中配置时钟是很重要的,配置系统时钟为72Mhz只需要通过一个库函数就可以,代码如下: SystemInit();                          //配置系统时钟为72Mhz

  • 03

    打开相应的管脚的时钟: 配置好了系统的时钟之后,要使用什么外设还要打开相应的外设的时钟,如果不打开就没办法使用,这是stm32的一种节能的策略,如果不打开时钟,外设就不工作,从而降低功耗。 我在这里使用的是PD端口的13管脚,所以要打开端口D的时钟。 代码如下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);      //打开端口D的时钟

  • 04

    配置端口: 打开了相应的端口之后就可以进行配置了,我在这里只是使用了PD13管脚,所以只配置PD13。 代码如下: GPIO_InitTypeDef GPIO_InitStructure;                                  //声明相应的结构体变量 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;                         //选中13管脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;           //管脚模式为推挽输出,推挽输出模式可以驱动led GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;       //管脚速度为50Mhz GPIO_Init(GPIOD,&GPIO_InitStructure);                               //向初始化函数中传入参数,第一个参数确定了D端口,第二个参数为前面定义的结构体变量,确定了端口的配置信息 代码解析: 这段代码先是定义了一个结构体变量 紧跟着的三条语句是对结构体变量中的三个成员变量进行赋值 最后一个语句调用了GPIO的初始化函数,此函数需要传入两个参数,可以在stm32的库函数使用手册中进行查询;第一个参数即GPIOD,确定了要初始化的端口是PD端口;第二个参数即&GPIO_InitStructure是取结构体变量GPIO_InitStructure的地址,这个结构体变量中的三个成员确定了需要对端口进行什么样的配置

  • 05

    LED驱动函数: 到这里GPIO就已经配置完成了,接下来就要配置一个led的驱动函数。 代码如下: GPIO_SetBits(GPIOD,GPIO_Pin_All);                //点亮led delay(6000000);                                               //延时 GPIO_ResetBits(GPIOD,GPIO_Pin_All);            //熄灭led delay(6000000);                                               //延时 代码解析: GPIO_SetBits()以及GPIO_ResetBits()这两个函数可以在stm32的库函数使用手册中查到,具体的作用分别是将相应的端口配置成为高电平和低电平,以此来驱动LED,至于延时函数这是一个自己定义的函数,在下一步中会有代码以及解释

  • 06

    延时函数: 此函数是自己定义的函数,作用是进行粗略的延时。 代码如下: void delay(u32 i) { while(i--); } 代码解析: 可以看出此函数将传入的参数i进行不断自减处理,从而起到占用CPU时间的作用,进行粗略的延时

(0)

相关推荐

  • 笔记本屏幕闪烁怎么办是什么原因如何解决

    大多数的屏幕闪烁问题是由于笔记本的屏幕的线缆接触不良导致的,因为笔记本的开合导致屏线会随着移动,虽然做了固定处理,但是难免部分同学的笔记本的屏线 会出现了松动现象导致接触不良,当使用笔记本或者敲击键盘 ...

  • 电脑屏幕闪烁,电脑屏幕抖动的原因以及解决方法

    朋友小谢买了电脑后很高兴,可是开机却出现电脑屏幕闪烁,电脑屏幕抖动!看屏幕上的字很费眼,这不打来电话让阿飞紧急帮忙,结果给她重新安装了稳定版的显卡驱动后,问题解决。小编阿飞也顺便把其他会导致电脑屏幕闪 ...

  • 电脑屏幕出现条纹闪烁怎么办? 笔记本/电脑屏幕出现条纹闪烁原因及解决方法

    电脑屏幕出现条纹闪烁解决方法大家可以来了解一下,如果你的笔记本电脑或台式电脑出现条纹并闪烁的话,不妨就试一试下文介绍的解决方法吧~ 原因一、受到外部干扰 是由于放置显示器的附近有强烈的电磁干扰,如电火 ...

  • 电脑屏幕闪烁怎么解决?电脑屏幕闪烁黑屏解决方法详解

    电脑屏幕闪烁如何解决?小编带来了电脑屏幕闪烁黑屏解决方法,怎么无缘无故的电脑屏幕就一闪一闪的呢?有的时候还会黑屏,怎么回事呢?请试一试下文的解决方法吧。 一、显示刷新率设置是否正确 检查方法是在我们电 ...

  • 电脑显示器出现闪烁或者抖动黑屏的排查方法小结

    现如今,电脑的显示屏已经不再像早前那样闪烁了,但是在使用一段时间之后,电脑显示器出现闪烁或者抖动,那么是哪些方面出现了问题,该如何进行解决? 一、显示刷新率设置是否正确 检查方法是:在我们电脑桌面空白 ...

  • PowerPoint2007教你制作动画闪烁的星星实例教程

    在PPT中,PPT动画说是幻灯片PPT中的精华是当之无愧的!ppt文件有了动画,犹如插上翅膀的鸟,让PPT的色彩衍生出了更多的特色。只要你的ppt动画效果制作的对,你的幻灯片将明显与众不同,观众也更容 ...

  • 百度搜索新玩法 搜索旋转跳跃闪烁抖动效果好酷炫

    你造吗?新版百度不光是搜索那么简单,还有更多个性化体验哦,搜索旋转跳跃闪烁抖动效果好酷炫!小编在这里为大家分享百度搜索新玩法。 百度搜索新玩法 搜索旋转跳跃闪烁抖动效果好酷炫 不信你试试,小编都试了个 ...

  • HPDJ600打印机打印若干行后突然停止,指示灯交替闪烁并有噪声的解决

    故障现象 打印机两个指示灯交替闪烁; 打印机产生很大的噪音,同时不能进纸打印,电脑报告缺纸等。 故障原因 由于墨滴很小,打印过程中会有少量墨水飞散开来,溅到横梁上,加上灰尘的积累,在长期使用或大量打印 ...

  • ATI显卡每次启动或点击控制面板程序时反复闪烁的解决

    问:为什么ATI的显卡每次在启动或是点击控制面板程序时都要反复闪烁好几次? 答:现在X1000的显卡都不同程度的存在这样的问题,出现短暂的闪烁。这是驱动程序不完善造成的,ATI经常会有在驱动之家htt ...