STM32F051C8T6控制LED

发布者:science56最新更新时间:2018-08-12 来源: eefocus关键字:STM32F051C8T6  控制LED 手机看文章 扫描二维码
随时随地手机看文章

一、概述

不管什么单片机,想要控制LED灯,只能是通过控制单片机芯片的I/O引脚电平的高低来实现。
同样在ST单片机上,I/O引脚可以被软件设置成各种不同的功能,如输入或输出,所以被称为 GPIO (General-purpose I/O)。
而GPIO引脚又被分为GPIOA、GPIOB„„GPIOG不同的组,每组端口分为 0~15,共16个不同的引脚不等,
对于不同型号的芯片,端口的组和引脚的数量不尽相同,具体请参考相应ST单片机芯片型号的datasheet。 


根据ST单片机的GPIO特点,控制LED灯的步骤如下: 
1.在众多 GPIO端口引脚中选定需要控制的特定引脚[与LED相连的控制引脚] 
2.根据外设配置GPIO需要的特定功能 
3.通过设置 GPIO输出电压的高低控制LED的亮和灭


二、硬件电路图



三、需要用到的库函数




四、应用程序设计

main.c

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

*平台:MDKARM 5.14

*主控:STM32F051C8T6

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

#include "stm32f0xx.h"

#include "led.h"

#include "delay.h"

 

int main (void)

{

Delay_Init(48);     //延时函数初始化

LED_Init();          //LED初始化

    

while (1)

{

LED_Not(0);

Delay_ms( 500 ); //控制闪烁速度

}

}

led.c

#include "led.h"

 

//LED控制端口初始化

void LED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;    

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);     //开启CPIOB时钟 

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12;  //选择控制引脚

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;     //设置为输出模式

GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;    //设置为推挽方式

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_Level_3; //设置引脚速度为高速

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;  //设置引脚为没有上下拉

GPIO_Init(GPIOB,&GPIO_InitStructure);   //初始化函数

//初始化LED关闭

GPIO_ResetBits(GPIOB, GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12);

 

 

 

}

 

void LED_Not(int n)

{

switch(n)

{

    //对引脚电平取反

case 0: GPIO_WriteBit(GPIOB, GPIO_Pin_15,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_15))));

break;

case 1: GPIO_WriteBit(GPIOB, GPIO_Pin_14,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_14))));

break;

case 2: GPIO_WriteBit(GPIOB, GPIO_Pin_13,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_13))));

break;

case 3:  GPIO_WriteBit(GPIOB, GPIO_Pin_12,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_12))));

break;

default: break;

}

}


这样编译下载后就能看到LED一闪一闪的


关键字:STM32F051C8T6  控制LED 引用地址:STM32F051C8T6控制LED

上一篇:STM32时钟模块 STM32F103RCT6
下一篇:STM32库函数端口初始化说明

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

带模式控制LED彩灯的制作电路
8个LED灯直接连接到Vcc 上,不需要限流电阻。本制作利用到同步定时器,及使用睡眠的方式节省电力。 如果你想改变LED接的管脚,请修改hardware.h文件。如果想修改LED的亮度,请修改globals.h 中的Timings 段定义。本设计外接了两个按钮,一个是选择工作模式,另一个是电源的开关。当你按下模式按钮1.5秒以上时,进入自动模式,会自动演示所有的预设模式。 注:键盘接的管脚的修改,也是由 hardware.h 文件控制。 实物图: 电路图: PCB图:
[电源管理]
带模式<font color='red'>控制</font>的<font color='red'>LED</font>彩灯的制作电路
LED灯具生产过程中如何控制光参数
目前国内生产 LED 灯具,一般只在设计阶段关心光参数。选择什么样的芯片,配什么样的驱动,如何散热等等。但是在生产过程中却没有行之有效的控制手段,包括大公司也一样。如何在生产过程中全方位的控制光参数?   首先是要在来料检验检测每卷芯片的参数是否和每卷的标签是否一致,一般来说大品牌的芯片部太可能整卷出错,所以检测一两颗即可,参数主要包括光通量,色温,功率,电流,电压等。小品牌的产品就要增加抽样比例。   在生产过程中,发料检查和记录必不可少。上料的记录要完整到色温,甚至不同分区。这个过程经常被忽略,因为大家都认为是个简单动作。为了防止出错,要有除了详细的记录外还要有人核对后再上SMT线。当然,这也有可能由于疏忽而弄错色温等,最好是
[电源管理]
51单片机通过串口控制LED
通过串口助手控制led,还有加了蜂鸣器,也有响声,不过不是太大,一点学习,希望大家多指教。 #include reg52.h //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit beep=P1^5; void delay(u16 i) { while(i--); } /******************************************************************************* * 函数名 :UsartIni
[单片机]
51单片机通过串口<font color='red'>控制</font><font color='red'>LED</font>
mini2440A 裸机编程:串口控制LED灯的亮灭
要求 在PC上发送L11控制开发板led1亮,发送L10控制开发板led1灭; 在PC上发送L21控制开发板led2亮,发送L20控制开发板led2灭; 在PC上发送L31控制开发板led3亮,发送L30控制开发板led3灭; 在PC上发送L41控制开发板led4亮,发送L40控制开发板led4灭; PC使用串口助手发送; 代码 #include string.h #include stdlib.h //0x50000020(L) //0x50000023(B) //(字节) UART 通道0 发送缓冲寄存器 #define UTXH0 (*(volatile unsigned int *)0x50
[单片机]
[零基础学习STM32]第四讲:UART通讯实验—控制LED
一、概述 1、UART简介 UART:通用同步/异步串行接收/发送器,由时钟发生器、数据发送器和接收器三大部分组成。UART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。STM32F407IGT6具有6个UART收发器,可使用相应的代码使能后使用。 2、UART特点 全双工操作(相互独立的接收数据和发送数据)。 同步操作时,可主机时钟同步,也可从机时钟同步。 支持8和9位数据位,1或2位停止位的串行数据桢结构。 由硬件支持的奇偶校验位发生和检验。 数据溢出检测。 帧错误检测。 包括错误起始位的检测噪声滤波器和数字低通滤波器。 三个完全独立的中断,TX发送完成、TX发送数据寄存器空、R
[单片机]
[零基础学习STM32]第四讲:UART通讯实验—<font color='red'>控制</font><font color='red'>LED</font>
基于单片机的LED彩灯控制
1 引言 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。 led 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 本文提出了一种基于AT89S51单片机的彩灯控制方案,实现对LE
[单片机]
基于单片机的<font color='red'>LED</font>彩灯<font color='red'>控制</font>器
数字控制LED 点亮生活新色彩
现代化的城市流光溢彩。社区沐浴在钠离子街灯的橙色光芒下。汽车头尾灯交相辉映,将公路化作一条光河,整个市区笼罩在摩天大楼精妙的色调中。顶级的音乐会使用灯光来变换舞台。建筑物采用多彩灯光增添吸引力,甚至水池也利用变色灯光来营造气氛。   电子发光设备无处不在,能够投射任意颜色的灯饰也越来越普遍。LED引领着变色灯饰向更高效、更易于获取及成本更低的方向发展。借助LED,设计人员找到了效率、混色调光功能以及长使用寿命的独特组合。采用数字信号控制器(DSC)可对LED进行数字控制,这使得灯饰兼有智能和与外界通信的能力。设计人员可以利用这些功能自由发挥,在LED灯饰中实现各种创新和令人兴奋的功能。   大多数工程师非常熟悉典型的低功耗LE
[模拟电子]
数字<font color='red'>控制</font><font color='red'>LED</font> 点亮生活新色彩
LED恒流精准控制技术详解
提到LED驱动精准度通常会想到恒流误差,其实驱动精度并不仅仅限于电流精度一项。LED是一款典型的电流驱动型器件,精准控制LED驱动电流,可决定包括光效率、电源效率、散热和产品亮度等在内的许多参数。驱动LED主要在于控制它的电流。无论是直接增、缩驱动电流,还是占空比(PWM)减小开关时间比,均是控制电流方式,但达到的目的却不相同。本文将阐述不同的驱动在不同应用中的区别。    分布式恒流驱动原理介绍   在以往的白炽灯和节能灯市场,大公司所形成的规格有限的主流灯具型号, LED很难再继续遵守。LED有它的应用灵活性,在日后的设计中会带来较多的电源规格。我们要避免过多的电源规格,不给日后量产带来诸多障碍。本着在不限制设计灵活性同时
[电源管理]
<font color='red'>LED</font>恒流精准<font color='red'>控制</font>技术详解
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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