stm32的点亮led的基础知识

led所需要的知识

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


文章目录

  • led所需要的知识
  • 前言
  • 一、stm32的led所需要工作方式
  • 二,硬件设计
  • 三,软件设计
    • 1. led的初始化配置
    • 2.main.c的配置
  • 四,知识充电
    • 1.mos管介绍
    • 2.TTL肖特基触发器
  • 五,总结


前言

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


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

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

推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。stm32的点亮led的基础知识_第1张图片

二,硬件设计

stm32的点亮led的基础知识_第2张图片这是板载led模块
stm32的点亮led的基础知识_第3张图片
两个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的场效应管。
stm32的点亮led的基础知识_第4张图片

2.TTL肖特基触发器

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

五,总结

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

你可能感兴趣的:(stm32,单片机,c语言)