概述
- GPIO口是STM32芯片最基本的资源,IO口大都具有输入输出功能。而输出功能一般情况分为开漏输出和推挽输出模式。
- 哪什么是开漏输出和推挽输出呢?我从网上查了一些资料,简单总结了一下:
- 开漏输出:只能输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行,适合做电流型的驱动,其吸收电流的能力相对强(一般在20MA以内)
- 推挽输出:可以输出强高低电平,连接数字器件
- 推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力,绝大多数情况下推挽输出就够了 对于开漏输出和推挽输出的区别最普遍的说法就是开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。
3. 在STM32中IO口有8种工作模式,分别为:
(1) 浮空输入
(2)带上拉输入
(3)带下拉输入
(4) 模拟输入
(5)开漏输出
(6)推挽输出
(7)复用功能的推挽输出
(8)复用功能的开漏输出
`typedef enum`
`{ GPIO_Mode_AIN = 0x0,//模拟输入`
`GPIO_Mode_IN_FLOATING = 0x04,//浮空输入`
`GPIO_Mode_IPD = 0x28,//下拉输入`
`GPIO_Mode_IPU = 0x48,//上拉输入`
`GPIO_Mode_Out_OD = 0x14,//开漏输出`
`GPIO_Mode_Out_PP = 0x10,//推挽输出`
`GPIO_Mode_AF_OD = 0x1C,//开漏复用输出`
`GPIO_Mode_AF_PP = 0x18//推挽复用输出`
`}GPIOMode_TypeDef;`
4.IO引脚速度:
//引脚的三种速度
GPIO_Speed_2MHz
GPIO_Speed_10MHz
GPIO_Speed_50MHz
又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路, 用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪 声控制和降低功耗的目的。)可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最 大频率。
5.IO口初始化
STM32 IO口与51系类的IO口不同,每当使用STM32 IO口时一定要初始化,否则无法使用。下面是初始化GPIOB5和GPIOE5的一般步骤,其他IO口的初始化大致是一样的。
GPIO_InitTypeDef GPIO_InitStruct;//定义GPIO结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE);//使能B口,E口(其他口使能也是一样的)
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//设置IO模式为推挽输出模式,还可以初始化为其他模式
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;//设置5口(还可以设置为其他口0~15)
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//设置IO口的速度为50MHz
GPIO_Init(GPIOB,&GPIO_InitStruct);//GPIOB`口初始化`
最后
以上就是传统春天为你收集整理的STM32---GPIO口的简介的全部内容,希望文章能够帮你解决STM32---GPIO口的简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复