STM32F103RCT6控制LED

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

不管什么单片机,想要控制LED灯,只能是通过控制单片机芯片的I/O引脚电平的高低来实现。
同样在ST单片机也一样,在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的亮和灭

电路图



从电路图可以看出低电平LED亮,高电平LED灭


所以我们设置的程序如下:

下面为库函数编程,需要加载如下库文件

main.c


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

*平台:MDKARM 5.14

*主控:STM32F103RCT6

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

#include "stm32f10x.h"

#include "led.h"

 

//延时函数

void Delay(unsigned int t)

{

while(t != 0)

{

t--;

}

}

 

int main (void)

{

LED_Init();

while (1)       //步骤3

{

        LED_Not(0);             //LED亮灭交替闪烁

for (j=0; j<30; j++)

{

Delay(60000);

}

}

}

led.c

#include "led.h"

//LED 端口初始化//步骤2

void LED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;//定义一个GPIO_InitTypeDef类型的结构体

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE); //开启GPIO的外设时钟

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;//选定控制引脚//步骤1

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置引脚为通用推挽输出  

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置控制引脚的速度

  GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化结构体

GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);//初始化LED灯熄灭

}

//点亮1个LED灯

void LED_On(int n)

{

switch(n)

{

case 0: GPIO_ResetBits(GPIOC,GPIO_Pin_0);       //控制引脚输出低电平

break;

case 1: GPIO_ResetBits(GPIOC,GPIO_Pin_1);

break;

case 2: GPIO_ResetBits(GPIOC,GPIO_Pin_2);

break;

case 3:  GPIO_ResetBits(GPIOC,GPIO_Pin_3);

break;

default: break;

}

}

//

void LED_Off(int n)

{

switch(n)

{

case 0: GPIO_SetBits(GPIOC,GPIO_Pin_0);         //控制引脚输出高电平

break;

case 1: GPIO_SetBits(GPIOC,GPIO_Pin_1);

break;

case 2: GPIO_SetBits(GPIOC,GPIO_Pin_2);

break;

case 3:  GPIO_SetBits(GPIOC,GPIO_Pin_3);

break;

default: break;

}

}

 

 

void LED_Not(int n)

{

switch(n)

{

case 0: GPIO_WriteBit(GPIOC, GPIO_Pin_0,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_0))));

break;

case 1: GPIO_WriteBit(GPIOC, GPIO_Pin_1,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_1))));

break;

case 2: GPIO_WriteBit(GPIOC, GPIO_Pin_2,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_2))));

break;

case 3:  GPIO_WriteBit(GPIOC, GPIO_Pin_3,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_3))));

break;

default: break;

}

}


如此编译后下载到MCU就能看到LED一闪一闪的


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

上一篇:STM32F401 ILI9235液晶屏屏 2.8寸 驱动心得
下一篇:STM32F103RCT6引脚功能及使用

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

STM32串口通信之超级终端控制LED
一、硬件介绍 本程序使用开发板:STM32-PZ6806L 1、GPIO控制LED 开发板中LED的硬件电路参看:直接通过寄存器地址操作控制LED灯 2、串口 开发板中连接了MCU的2个串口,分别为USART1和USART3,其中USART1通过CH340G接PC端USB口,实现USB转串口功能,可以用于程序下载和串口通信,但通过PC端的超级终端连接时不能连接,所以本程序使用开发板上的另一个串口USART3,该串口信号转换成RS232,通过直连串口线与PC端的COM口相连,可以实现与超级终端通信。 开发板串口的硬件连接图请参考:STM32串口通信之Hello 二、项目创建与配置 请参看《STM32串
[单片机]
STM32串口通信之超级终端<font color='red'>控制</font><font color='red'>LED</font>灯
升特公司推出单电池芯LED与电机定时器-控制器,简化用AA/AAA运行的电子设备的设计
升特公司(Semtech)(纳斯达克: SMTC)今天发布了一款采用亚1V混合信号LED以及电机定时器-控制器平台的最新器件,锁定小型、轻便、超低功耗的电池工作电子设备的简单、快速和高成本效益设计。新款SX8120与SX8121器件可内生地工作在0.9V,用一只电池就可以直接控制一台DC电机或其它连续低电压元件,以及驱动一只高亮度LED。由于其既有设计工作在0.9V,因此不需要外接升压转换器和电感,节省了电路板空间和成本。另外,不同于需要定制开发的MCU,这些控制器具有可通过管脚编程的定时器功能,无需冗长的软件调整,使之易于使用并有高性价比。 这种功能组合显著减小了总体尺寸与重量,延长了电池寿命,简化了设计,缩短了产
[模拟电子]
升特公司推出单电池芯<font color='red'>LED</font>与电机定时器-<font color='red'>控制</font>器,简化用AA/AAA运行的电子设备的设计
基于控制器LM3445带三端可控硅调光器的离线式LED驱动器
   0 引言   基于控制器IC的可调光LED驱动器通常采用的调光方式有两种,即数字PWM调光和模拟DC电压调光。基于相位控制的TRIAC传统白炽灯和卤素灯调光器若用于LED的调光控制,会产生100Hz或120Hz的闪烁,而且调光范围非常窄。最近美国国家半导体(NS)公司推出一种带有TRIAC调光译码器的离线式AC/DC降压(buck)恒流LED控制器LM3445,允许利用标准TRIAC调光器对LED进行宽范围的平稳无闪烁调光,打破了传统TRIAC调光器应用与LED节能照明的一个瓶颈。    l LM3445的主要特点   LM3445与先前的同类离线式AC/DC降压恒流LED驱动器IC比较,其主要特点是在芯片上设计了TR
[电源管理]
STM32F103RCT6的脉冲宽度调制(PWM)的输出设定
关键词:重映射 连接在APB1(低速外设)上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4。 连接在APB2(高速外设)上的设备有:UART1、SPI1、Timer1、ADC1、ADC2、所有普通IO口、第二功能IO口。 注意:查看32 位基于 ARM 微控制器 STM32F101xx 与 与 STM32F103xx固件函数库 pwm.c文件: #include pwm.h //PWM输出初始化 //arr:自动重装值 //psc:时钟预分频数 void TIM2_PWM_Init(u16 arr1,u1
[单片机]
<font color='red'>STM32F103RCT6</font>的脉冲宽度调制(PWM)的输出设定
PWM控制LED渐亮渐灭的51汇编程序
;设计思路:用定时器中断产生最小时间单位T0,每m个T0组成一个子周期T10,其中前n个T0为LED导通时间,即Ton=n*T0,则Toff=(m-n)*T0 ;每X个T10组成一个母周期T20,其中前y个T10为有效控制时间,后续的(x-y)个T10令LED熄灭或者子周期占空比调至最小。 ;适当调节n/m和x/y的比例使显示效果达到最佳。 ;以下是刚刚调试通过的小段程序,显示效果良好。 ;实验过程本人有一种推测,不知是否成立: ;子周期的最小占空比的宽度应大于LED的点亮时间,即点亮LED的时间宽度n/m*T0应足够产生余辉。类似于动态数码管对点亮时间的要求。 ;母周期的宽度应小于1/50s,提高刷新频率以令肉眼察觉不出闪烁。
[单片机]
单片机控制LED数码管动态驱动电路
数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。 两位共阳数码管的单片机驱动方法,电路如下图: P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。 因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。
[单片机]
单片机<font color='red'>控制</font>的<font color='red'>LED</font>数码管动态驱动电路
大功率LED智能化照明控制系统设计
随着led技术的不断发展,推动了白光LED的问世,照明产业开始了绿色照明时代。由于LED能耗少、热辐射低、发光效率高,是一种节能、环保、经济、安全的新型照明器件,因此,加快技术研究并提高其发光效率成为当今首要问题。大功率LED要成为照明业的主体,其中安全、高效的驱动研究是推广应用大功率LED的关键。 1 大功率LED工作特性 LED是一种新型半导体固态冷光源,它是一种能够将电能转化为可见光的光电器件。一般来说,大功率LED的功率至少在1 W以上,目前比较常见的有1 W、3 W、5 W、8 W和10 W;被称为“绿色光源”的LED,正朝着大电流(300 mA~1.4 A)、高效率(60~120 lm/W)、亮度可调的方向发
[电源管理]
大功率<font color='red'>LED</font>智能化照明<font color='red'>控制</font>系统设计
编程控制8位LED循环点亮
8个LED正极通过1千欧的限流电阻接到电源正极,负极接单片机控制端P0口。只要P0口管脚输出低电平,对应的LED就会被点亮。原理图如下: 单片机控制外部器件是通过I/O口的操作来实现的,因此对外围器件的操作,实际上是对I/O口的操作。 编程如下: 1、循环左移 #include reg51.h //51系列单片机头文件包含对单片机内部寄存器等的定义 #include intrins.h //本征函数头文件,包含此头文件可以在程序中直接调用本征函数_crol_(a,n) #define uchar unsigned char /*以下三句属宏定义语句,以#define LED P0为例,它
[单片机]
编程<font color='red'>控制</font>8位<font color='red'>LED</font>循环点亮
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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