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单片机知识和数电模电知识,对单片机产生浓厚的兴趣,多看一些关于芯片的知识。