STM32的LED闪烁实验

发布者:iota19最新更新时间:2018-06-15 来源: eefocus关键字:STM32  LED闪烁 手机看文章 扫描二维码
随时随地手机看文章

下面我就把点亮STM32 的LED灯过程分享一下:


    首先你的了解以下俩点:

    1、 了解 STM32 用有几种 GPIO 模式。

 

    2、 怎么学会设置 STM32 的 GPIO 输出控制 LED 灯。

首先我们来看一下我们开发板上面 LED 的接线图:

 


从上面的图,我们可以看到 LED 灯是接到单片机的 PC 口的 PC0 到 PC7。而
点 亮一盏LED的原理就是把相应LED接到单片机的相应的IO口输出低电平, IO
口 输出为高电平就能够熄灭 LED(由图中得LED灯都是共阳极接高电平,所以

当所接开发板的引脚输出低电平时,有电流流过LED灯,灯才亮)。


了解了这些以后就可以开始动工了》


     ①创建一个空的工程,

     ②初始化GPIO。

  1. #ifndef _led_H  

  2. #define _led_H  

  3. #include "stm32f10x.h"  

  4. #define LED GPIO_Pin_All    //管脚宏定义  

  5. void LED_Init(void);  

  6. void led_display(void);  

  7.   

  8. #endif   

#include "led.h"  

  

/******************************************************************************* 

* 函 数 名         : delay 

* 函数功能         : 延时函数,delay(6000000)延时约1s 

* 输    入         : i 

* 输    出         : 无 

*******************************************************************************/  

void delay(u32 i)       

{  

    while(i--);  

}  

  

/******************************************************************************* 

* 函 数 名         : LED_Init 

* 函数功能         : LED初始化函数 

* 输    入         : 无 

* 输    出         : 无 

*******************************************************************************/  

void LED_Init()   //端口初始化  

{  

    GPIO_InitTypeDef GPIO_InitStructure; //声明一个结构体变量,用来初始化GPIO  

  

    SystemInit();   //时钟初始化  

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);  

  

    /*  配置GPIO的模式和IO口 */  

    GPIO_InitStructure.GPIO_Pin=LED;  //选择你要设置的IO口  

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;   //设置推挽输出模式  

    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;   //设置传输速率  

    GPIO_Init(GPIOC,&GPIO_InitStructure);      /* 初始化GPIO */  

}  

  

/******************************************************************************* 

* 函 数 名         : led_display 

* 函数功能         : LED显示函数  LED闪烁 

* 输    入         : 无 

* 输    出         : 无 

*******************************************************************************/  

void led_display()  

{  

    GPIO_SetBits(GPIOC,LED);  

    delay(6000000);//延时约为1s  

    GPIO_ResetBits(GPIOC,LED);  

    delay(6000000);  



    ③主函数写出要实现的功能



int main()  

{     

    LED_Init();     //LED端口及时钟初始化    

    while(1)  

    {  

        led_display(); //led显示            

    }     

}  


关键字:STM32  LED闪烁 引用地址:STM32的LED闪烁实验

上一篇:stm32——串口1和串口2初始化
下一篇:Stm32按键中断使LED灯闪烁

推荐阅读最新更新时间:2024-03-16 16:05

LED闪烁赶走鸟类 保护飞行器的安全
还记得美国航空公司1549航班在遭受鸟击后紧急迫降在哈得逊河的情景吗?撞到这架飞机的是一群加拿大鹅,由于鸟类在视觉刺激反应上和人类有很大的不同,因此很难用常规方法来阻止他们飞进航线范围,不过现在科学带给我们一个解决方案,那就是LED灯闪烁。   美国农业部、印第安纳州立大学和普渡大学的研究人员刚刚发表了一篇论文,他们正在寻找如何吓跑接近飞行器的鸟类。   研究队伍派出了三架无线电控制的飞机,其中一架是正常的飞机模型,一架被伪装成猎食者样式,而最后架则带有闪烁的交替脉冲LED灯光,频率为2Hz。   结果显示,灯光在闪烁时鸟类会迅速注意到飞机并避让,效果比伪装成掠食者都来得好。   看来只需要让LED闪烁这样简单的东西就可以减少
[模拟电子]
<font color='red'>LED</font>灯<font color='red'>闪烁</font>赶走鸟类 保护飞行器的安全
STM32定时器溢出模式计时设置
环境: 主机:WIN7 开发环境:MDK4.23 MCU:STM32F103CBT6 源代码1: 说明:定时器采用TIM2,时钟源为内部8M晶振,向上溢出模式.此定时器用在延时函数,最小可以延时1us,故没有采用中断形式定时. 初始化代码: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); //重新将Timer设置为缺省值 TIM_DeInit(TIM2); //采用内部时钟给TIM2提供时钟源 TIM_InternalClockConfig(TIM2); timInitStruct.TIM_ClockDivision = TIM_CKD_DIV2;
[单片机]
STM32输入输出模式理解
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。因此,在这里做一个
[单片机]
<font color='red'>STM32</font>输入输出模式理解
stm32 pwm的原理及主要参数的意义
pwm的原理如图 ARR:最值,定时器最值 CCRx:PWM的比较值 CNT:为计数器值 原理就是,CCRx的值和CNT比较大小,通过判断结果来决定输出是高电平还是低电平。 将代码定位到TIM_OC_InitTypeDef类中,然后看注释 uint32_t Pulse; /*! Specifies the pulse value to be loaded into the Capture Compare Register. This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */
[单片机]
STM32设计的儿童老人GPS防丢定位手环
一、环境介绍 MCU:STM32F103C8T6 GSM模块:GA6--果云 开发软件:Keil5 二、GA6-GSM模块介绍与调试 说明: GA6-B模块供电必须5V,采用电脑USB供电可能不稳定(没有5V,只有4.8V左右),导致模块使用不稳定,发送AT指令没有反应,调试阶段,可将开发板的USB线连接充电宝或者手机充电插头取电。 2.1 GA6-B模块概述 GA6-B 模组: 1. GA6 尺寸 22.8mm x 16.8mm x 2.2 mm; 2. 正常工作温度:-30°C ~ +80°C, 3. 受限工作温度:-40°C ~ -30°C 及+80°C ~+85°C* 4. 工作电压 3.5V-4.2V; 5. 开
[单片机]
<font color='red'>STM32</font>设计的儿童老人GPS防丢定位手环
整理STM32GPIO输出速率问题
GPIO 引脚输出速度有:GPIO_Speed_2MHz (10MHz, 50MHz) 官方一点的解释: GPIO口的驱动电路响应速度,不是输出信号的速度。输出信号的速度与程序有关,通过选择速度来选择不同的驱动电路,降低功耗控制噪声。 又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。) 可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最大频率。 (如果一个信号的频率超过了驱动电路的响应速度,就有可能信号失真。失真因素?) 如果信号频
[单片机]
基于stm32的usb iap程序升级步骤
usb自动更新程序IAP(in application programming)DFU(develepment firemeware upgrate).整个芯片有512k的片内flash,用户程序下载在里面运行,flash的地址是0x8000000,大小为0x80000,usb自动更新程序首先下载0x8000000——0x80002FFF,总大小为12K,用户程序下载到0x80003000,大小为0x7D000(500K),usb自动更新代码为如下,如果按键按下,就进入DFU模式,否则就启动用户代码。 用户程序除了在void NVIC_Configuration(void) { /* Set the Vector Table
[单片机]
为什么学习STM32时还要学习汇编
不同的平台的汇编代码是不一样的,最早的汇编在50年代就发明了,比很多人的父母的年龄都大,老掉牙,不用学习怎么写汇编。一个公司有一个人知道怎么写汇编就够了。但要学习读汇编,为什么学习汇编? 1、性能 直接翻译为机器语言,性能最高。优秀的C语言效率只能达到汇编的80%左右。其他高级语言跟汇编一比差得更远。语言越高级性能越差。很多bootloader和BIOS用汇编写,汇编操作的是电脑,手机刚刚上电时,硬件和初始化的那些命令,它们的性能的要求比较高,效率高开机速度更快。 分析问题 个人认为,编程人与机器对话,我们写C,写JAVA,但是电脑并不认识这些语言,电脑只认识0和1;所以需要一个人来翻译这些语言,这个翻译官就是编译器,但是
[单片机]
为什么学习<font color='red'>STM32</font>时还要学习汇编
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved