1、IO输出
led.c
#include
#include 'led.h'
//初始输出口.并使能这两个口的时钟
//LED IO初始化
void LED_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
RCC->APB2ENR|=1<<3; //使能PORTB时钟
GPIOA->CRL|=0X00000300;//PA2 推挽输出
GPIOA->ODR|=1<<2; //PA2 输出高
GPIOA->CRL|=0X00003000;//PA3 推挽输出
GPIOA->ODR|=1<<3; //PA3 输出高
GPIOB->CRL|=0X00003000;//PB3 推挽输出
GPIOB->ODR|=1<<3; //PB3 输出高
}
led.h
#ifndef __LED_H
#define __LED_H
#include 'sys.h'
//LED端口定义
#define LED0 PAout(2)// PA2
#define LED1 PAout(3)// PA3
#define LED2 PBout(2)// PB2
void LED_Init(void);//初始化
#endif
关键字:STM32 驱动例程 IO输出
引用地址:
STM32 驱动例程
推荐阅读最新更新时间:2026-03-24 23:25
STM32的IO口灌入电流和输出驱动电流最大是多少?
最大可以输出8mA,灌入20mA,但要保证所有进入芯片VDD的电流不能超过150mA,同样所有从VSS流出的电流也不能超过150mA。 详细请看STM32的数据手册中的相关内容。 例如,STM32F103中容量产品,需要看5.2节和5.3.12节,里面有更详细的数据: http://www.st.com/stonline/products/literature/ds/13587.pdf STM32F103X8B
[单片机]
STM32之IO输出方式理解
下面是开漏和推挽的区别: 开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候。 推挽输出就是单片机引脚可以直接输出高电平电压。低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。
[单片机]
STM32 IO口输入输出模式的简洁见解
输入模式 (1)浮空输入:没有外界电压输入时,电压不确定。 (2)上拉输入:没有外界电压输入时,IO口经过一个上拉电阻接高电压Vcc,再经过施密特触发器转换成1信号,此时为高电平。(无输入,高电平) 有外界电压输入时,电压进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平是高电平还是低电平。 (3)下拉输入:没有外界电压输入时,IO口经过一个上拉电阻接低电压Vss,再经过施密特触发器转换成0信号,此时为低电平。(无输入,低电平) 有外界电压输入时,电压进入芯片后加了一个下拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平是高电平还是低电平。 (4)模拟输入:
[单片机]
stm32通过IO口模拟输出多路pwm
这里主要用于控制舵机,使用TIM1模拟了5路50Hz的PWM信号,只调节占空比控制舵机角度。 最大能模拟多少路没有具体测试。 缺点:因为是定时器中断模拟(中断比较频繁),所以会影响main函数运行。 LED p1('A',8); //IO口初始化,这里就不介绍了,推挽输出 LED p2('A',9); LED p3('A',10); LED p4('A',11); LED p5('A',4); u16 count=0; u16 pwm_count=1000; //总计数 周期20ms,20us进次 u16 pwm1=25; u16 pwm2=
[单片机]
STM32的IO口输入输出模式的理解
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高
[单片机]
stm32 复位io默认输出
看到手册上说复位期间和复位后,I/O口是浮空输入。 复位之后,是ODR的值。而ODR的值在复位后是0。这样理解的话就是复位后是低电平吧?开漏或者推挽模式会怎么影响呢? 浮空的时候电平不受ODR控制. 开漏的时候,也不受ODR控制. 推挽的时候,受ODR控制. 所以,复位的时候,IO电平不高不低的,可能在1.6V左右. 浮空,顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了. 开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极 是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出
[单片机]
LPC11C14单片机为例分析IO无法输出高低电平的处理办法
很多人在使用单片机时,总是会面临一个问题,就是在单机片的运用过程中老是输出高低电平,这是为什么呢?下面小编就以LPC11C14单片机为例来为你解说单片机IO为什么无法输出高低电平的原因。 在用LPC11C14单片机,该单片机是32cortex-M0系列的,带有片上CAN资源,既可以使用寄存器编程,也可以使用库函数(CMSIS)来编程应用方便。其下载方式有两种: SW方式; ISP方式; 对于LQF48封装而言,调试口分别为: 29脚:SWCLK; 39脚:SWDIO; 这个两个引脚可以复用,在项目设计中到了29脚,将该引脚用作了GPIO输出脚,在用库函数调试的过程中发现时钟无法控制输出高
[单片机]
MSP430F5529学习笔记(一)——点灯|IO输出
开始学习和了解TI公司旗下的一款低功耗MCU芯片——MSP430F5529,根据了解该单片机可用多种方式编写,例如大家常用的IAR,CCS,甚至你可以用KEIL和VScode配置环境进行代码的烧写,当然也有相对无脑的Energia可供选择。 以上分别为部分可编译MSP430F5529的编译器,本次学习我们将在MSP430F5529开发板平台为基础进行,采用CCS作为基础进行学习,想快速上手的朋友可以使用energia(类似arduino的编译方式)。 在所有的单片机学习过程中都逃不过点灯,点灯是基础的IO口电平输出的经典案例,通过它可以了解基本的单片机IO口的输出电平方式,本着万物皆可点灯的理念,首先进行点灯实验。
[单片机]