stm32的点亮led的基础知识

led所需要的知识

stm32的GPIO的工作方式(浮空输入,上拉输入,下拉输入,模拟输入,开漏输出,开漏复用输出,推挽输出,推挽复用输出)以及点亮led的软件和硬件配置。



前言

作为一名刚刚学习完51单片机的初级者  STM32单片机则是ST公司使用arm公司的cortex-M3为核心生产的32bit系列的单片机,他的内部资源(寄存器和外设功能)较8051、AVR和PIC都要多的多,基本上接近于计算机的CPU了,适用于手机、路由器


提示:以下是本篇文章正文内容,下面案例可供参考

一、stm32的led所需要工作方式

推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。在这里插入图片描述

二,硬件设计

在这里插入图片描述这是板载led模块
在这里插入图片描述
两个led与vcc相连,所以控制输出低电平,即可使led点亮。

三,软件设计

1. led的初始化配置

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;				 
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
 //设置推挽输出		 
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		
 //IO口的速度为50MHZ 
 GPIO_Init(GPIOA, &GPIO_InitStructure);					 
 GPIO_SetBits(GPIOA,GPIO_Pin_8);						 

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;	    		 
 GPIO_Init(GPIOD, &GPIO_InitStructure);	  				 				 
}

2.main.c的配置

代码如下(示例):

#include "led.h"
#include "delay.h"
#include "sys.h"

 int main(void)
 {	
	delay_init();	    	 //延时函数进行初始化
	LED_Init();		  	//对led进行初始化
	while(1)
	{
		GPIO_ResetBits(GPIOA,GPIO_Pin_8); 
		GPIO_SetBits(GPIOD,GPIO_Pin_2);
		delay_ms(300);
		GPIO_SetBits(GPIOA,GPIO_Pin_8);
		GPIO_ResetBits(GPIOD,GPIO_Pin_2);
		delay_ms(300);
	}
 }


四,知识充电

1.mos管介绍

MOS管一般又叫场效应管,与二极管和三极管不同,二极管只能通过正向电流,反向截止,不能控制,三极管通俗讲就是小电流放大成受控的大电流,MOS管是小电压控制电流的。MOS管的输入电阻极大,兆欧级的,容易驱动,但是价格比三极管要高,一般适用于需要小电压控制大电流的情况,电磁炉里一般就是用的20A或者25A的场效应管。
在这里插入图片描述

2.TTL肖特基触发器

TTL肖特基触发器其实可以理解为用肖特基管构成的施密特触发器,作用简单说就是将相对缓慢变化的模拟信号变成矩形信号,便于后面读取。这里有一个阈值电压的概念,比如从低到高达到多少才会导通,从高到底多少才会关闭等等

五,总结

刚开始面对stm32开发板,可能对于萌新有些困难,需要你储备51单片机知识和数电模电知识,对单片机产生浓厚的兴趣,多看一些关于芯片的知识。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值