基于STM32F103RCT6的跑马灯

基于STM32F103RCT6的跑马灯

我想跑马灯应该是大部分人开始学习32的第一个代码了,学过51的都可能不太适应32吧。毕竟它建一个工程对初学者都不太友好了,更别说它还要进行GPIO初始化还有时钟等的配置,一个字“烦”,不过还能咋办学呗!

关于STM32F103RCT6

它有64个引脚,51个IO口,大部分IO口耐5V(模拟通道除外)
一共4组IO口、16*3+3=51个IO口
GPIOA0~A15
GPIOB0~B15
GPIOC0~C15
GPIOD0~D2

GPIO口的工作方式
1、输入浮空
2、输入上拉
3、输入下拉
4、模拟输入
5、开漏输出
6、推挽输出
7、推挽式复用功能
8、开漏复用功能

3种最大翻转速度:2MHZ、10MHZ、50MHZ。

它有3个12位的AD、2个12位DA、12个DMA通道、11个定时器、
13个通行接口、还有多达84个中断

代码

写代码可以用库函数、寄存器、位带操作等来写,我选择的是库函数
我是用正点原子min板学习的下面我说下步骤:
1、使用时钟调用函数

RCC_APB2PeriphColckCmd();

2、初始化IO口模式,调用函数GPIO_Init();
3、操作IO口,输出高低电平

GPIO_SetBits();//输出高电平
GPIO_ResetBits();//输出低电平

全部代码
led.h

#ifndef __LED_H
#define __LED_H

void LED_Init(void);


#endif

led.c

#include "LED.h"
#include "stm32f10x.h"
void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIOA
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);//GPIOD
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8 ;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度为50HZ
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	GPIO_SetBits(GPIOA,GPIO_Pin_8);//输出高电平
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2 ;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度为50HZ
	GPIO_Init(GPIOD,&GPIO_InitStructure);
	GPIO_SetBits(GPIOD,GPIO_Pin_2);
}


main.c

#include "stm32f10x.h"
#include "LED.h"
#include "delay.h"
//#include "oled.h"
int main(void)
{	
 
LED_Init();
delay_init();
	while(1){
	GPIO_SetBits(GPIOA,GPIO_Pin_8);
	GPIO_ResetBits(GPIOD,GPIO_Pin_2);	
	 delay_ms(300);
	  	
	GPIO_SetBits(GPIOD,GPIO_Pin_2);	
	GPIO_ResetBits(GPIOA,GPIO_Pin_8);	
	delay_ms(700);
	}
}

### 回答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公司生产。它具有丰富的外设,因此可以广泛应用于各种领域,如工业控制、物联网和消费电子等。 对于STM32F103RCT6的LED灯电路图,我们可以基于这款芯片设计一个简单的电路来驱动LED灯。下面是一种常见的电路设计: 首先,我们需要连接LED灯到STM32F103RCT6的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灯将会熄灭。 需要注意的是,为了保护LED灯和STM32F103RCT6微控制器,我们可以在电路中添加电流限制电阻和保护二极管,以防止过流和反向电压的产生。 总之,这是一个基本的STM32F103RCT6的LED灯电路图设计。 ### 回答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的亮度级别。 总结来说,STM32F103RCT6的LED灯电路图主要是将微控制器的GPIO引脚连接到LED灯,通过控制引脚的电平或PWM来控制LED的亮灭和亮度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值