STM32(三)库函数开发跑马灯[控制LED灯]

13 篇文章 2 订阅
13 篇文章 0 订阅

STM32系列文章目录



前言

配置GPIO引脚前先查看板子原理图,LED配置在哪个IO口,本篇以正点原子、STM32F103RCT6为例。

LED灯我们主要用到的固件库文件是:
stm32f10x_gpio.c /stm32f10x_gpio.h
stm32f10x_rcc.c/stm32f10x_rcc.h
misc.c/ misc.h
stm32f10x_usart /stm32f10x_usart.h
也可把外设固件库全部加入到工程,方便延伸。


一、创建

在这里插入图片描述
在这里插入图片描述

二、代码部分

1.main.c

 int main(void)
 {	
	delay_init();	    	 //延时函数初始化	  
	LED_Init();		  	//初始化与LED连接的硬件接口
	while(1)
	{
		GPIO_ResetBits(GPIOA,GPIO_Pin_8); //LED0输出低
		GPIO_SetBits(GPIOD,GPIO_Pin_2);//LED1输出高
		delay_ms(1000);     //延时1000ms闪一次
		GPIO_SetBits(GPIOA,GPIO_Pin_8);//LED0输出高
		GPIO_ResetBits(GPIOD,GPIO_Pin_2);//LED1输出低
		delay_ms(1000);
	}
 }

2.led.c

void LED_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);	 //使能PB,PE端口时钟
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;				 //LED0-->PB.5 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOA, &GPIO_InitStructure);					 //根据设定参数初始化GPIOB.5
 GPIO_SetBits(GPIOA,GPIO_Pin_8);						 //PB.5 输出高

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;	    		 //LED1-->PE.5 端口配置, 推挽输出
 GPIO_Init(GPIOD, &GPIO_InitStructure);	  				 //推挽输出 ,IO口速度为50MHz
 GPIO_SetBits(GPIOD,GPIO_Pin_2); 						 //PE.5 输出高 
}

3.led.h

#ifndef __LED_H
#define __LED_H	 
#include "gpio.h"


#define LED0 PAout(8)	// PA8 
#define LED1 PDout(2)	// PD2	

void LED_Init(void);//初始化

		 				    
#endif


三、扩展什么是GPIO

GPIO(General-Purpose Input/Output,通用输入/输出)是一种在电子设备和计算机中常见的接口类型。GPIO 可以用于与外部设备或电路进行交互。这些接口可以同时作为输入和输出使用,根据具体的配置和需求进行设定。

GPIO 的功能特点

  1. 基本定义:

    • GPIO 接口是专为通用目的设计的,可以用于与外部设备或电路进行交互。这些接口可以同时作为输入和输出使用。
    • 作为输入,GPIO 可以接收来自传感器、开关或其他外部设备的信号。
    • 作为输出,GPIO 可以向外部设备发送数字信号,例如控制 LED 的亮灭、驱动电机运转等。
  2. 功能特点:

    • GPIO 接口具有多个引脚,每个引脚都可以配置为输入或输出。
    • GPIO 接口通常包括控制寄存器,如 GPxCON、GPxDAT 等,用于控制 GPIO 引脚的功能和状态。
    • GPIO 可以支持简单的开/关状态,适用于控制 LED、继电器等。
    • GPIO 接口可以用于读取外部传感器的状态,例如按钮、温度传感器等。
  3. 扩展功能:

    • GPIO 接口还可以用于扩展 I/O 口,当微控制器或芯片组没有足够的 I/O 端口时,或者当系统需要采用远端串行通信或控制时,GPIO 产品能够提供额外的控制和监视功能。
  4. 实现细节:

    • GPIO 的实现细节可能会因设备的不同而有所差异,但其基本思想是允许用户通过 GPIO 接口接收或发送电信号至几乎任何外部设备。
    • GPIO 接口上的引脚可以根据需要配置为发送或接收电信号。
    • GPIO 接口还可以包括特殊用途的引脚,这些引脚的具体功能取决于具体的 GPIO 设计。
  5. 应用领域:

    • GPIO 接口广泛应用于嵌入式系统中,用于控制简单的外部设备或电路。
    • GPIO 接口可用于构建自定义电子设备,例如 DIY 机器人、气象站等。
### 回答1: STM32F103RCT6是一款基于ARM Cortex-M3核心的32位微控制器,它内置了多个通用输入输出引脚(GPIO),可以用于控制外部设备。在设计使用STM32F103RCT6控制LED的电路图时,需要以下几个关键元件: 1. STM32F103RCT6芯片:作为主控芯片,负责控制LED的开关状态。 2. LED:用于发光,常见的有常亮型LED和闪烁型LED两种。 3. 电阻:用来限制电流,保护LED不受损。 4. 连接线:将芯片和LED连接在一起。 具体的电路图可以按照以下步骤进行设计: 1. 将STM32F103RCT6芯片的GPIO引脚与LED连接。选择一个GPIO引脚作为控制引脚,使用连接线将其与LED的正极连接。 2. 为LED选择一个适当的电阻。在电路图中,将电阻连接在LED的负极与STM32F103RCT6的GND引脚之间。电阻的选择应根据所使用的LED的特性以及所需的电流进行计算。 3. 如果需要控制LED的亮灭状态,可以将电阻与一个额外的GPIO引脚连接,通过控制该引脚的电平来控制LED的亮灭。在电路图中,将该GPIO引脚与电阻连接,然后将电阻与LED的正极连接。 在设计完电路图后,还需要编写适当的软件程序来控制STM32F103RCT6芯片相应GPIO引脚的输出电平,从而实现对LED控制。具体的软件程序编写将涉及到使用STM32F1系列的开发环境和相应的编程语言,如C语言或汇编语言。 请注意,在实际设计中,除了上述基本的电路图外,还需要考虑如电源的连接、信号的滤波等其他因素,以保证LED的正常工作。 ### 回答2: STM32F103RCT6 是一款常用的STM32系列微控制器,由STMicroelectronics公司生产。它具有丰富的外设,因此可以广泛应用于各种领域,如工业控制、物联网和消费电子等。 对于STM32F103RCT6LED电路图,我们可以基于这款芯片设计一个简单的电路来驱动LED。下面是一种常见的电路设计: 首先,我们需要连接LEDSTM32F103RCT6的GPIO引脚上。GPIO引脚具有输入和输出功能,我们可以通过配置来选择它们的工作模式。在这个例子中,我们将使用一个输出引脚来控制LED的亮灭。 我们选择一个合适的GPIO引脚(例如PA5)来连接到LED的正极上。假设我们将LED的负极连接到STM32F103RCT6地线上(GND)。 接下来,我们需要在代码中配置GPIO引脚的工作模式。我们可以使用ST的CubeMX软件来生成初始化代码,或者手动编写代码。 对于使用ST的CubeMX软件的方法,我们可以选择相应的GPIO引脚,并将其配置为输出引脚。然后,我们可以选择高电平或低电平输出,以控制LED的亮灭。 对于手动编写代码的方法,我们需要使用STM32库函数来配置GPIO引脚的工作模式。具体来说,我们需要调用相应的函数来设置引脚为输出模式,并在需要时将引脚的输出状态设置为高电平或低电平。 完成这些步骤后,我们就可以通过控制STM32F103RCT6的GPIO引脚来控制LED的亮灭了。例如,如果我们将GPIO引脚设置为高电平状态,LED将会亮起;如果我们将GPIO引脚设置为低电平状态,LED将会熄灭。 需要注意的是,为了保护LEDSTM32F103RCT6控制器,我们可以在电路中添加电流限制电阻和保护二极管,以防止过流和反向电压的产生。 总之,这是一个基本的STM32F103RCT6LED电路图设计。 ### 回答3: LED电路图是STM32F103RCT6控制器连接到LED的电路设计图。 STM32F103RCT6是一款32位ARM Cortex-M3内核的微控制器,拥有丰富的外设和强大的运算能力。LED是一种常见的电子组件,用于提供光源。 在电路图中,STM32F103RCT6控制器的引脚连接到LED。通常,LED连接到STM32F103RCT6的GPIO(通用输入/输出)引脚。GPIO引脚可以配置为输出模式,以便通过控制引脚的电平来控制LED的亮灭。 电路图中还可能包括一些电阻器,用于限制LED电流,以保护LED免受过电流的损坏。电路图中也可能包括电容器,用于稳定电源电压。 在软件方面,通过编程STM32F103RCT6的GPIO引脚,可以控制LED的亮灭。例如,将引脚输出逻辑高电平可以使LED亮起,将引脚输出逻辑低电平可以使LED熄灭。 此外,还可以通过PWM(脉冲宽度调制)来控制LED的亮度。通过调节PWM的占空比,可以改变LED的亮度级别。 总结来说,STM32F103RCT6LED电路图主要是将微控制器的GPIO引脚连接到LED,通过控制引脚的电平或PWM来控制LED的亮灭和亮度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小超电子笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值