历史上的今天
今天是:2024年09月03日(星期二)
2020年09月03日 | STM32学习系列---STM32之GPIO
2020-09-03 来源:eefocus
1.GPIO解释
GPIO英文全称是General-purpose input/ouput,即通用型输入输出,GPIO根据配置可以作为通用输入(GPI),通用输出(GPO)或是通用输入输出(GPIO)
1,直接输入到芯片内部检测,一般用于ADC等模拟量信号采集。
输出模式开漏输出
推挽输出
复用开漏输出
复用推挽输出
开漏输出
推挽输出
复用开漏输出
复用推挽输出

输出模式实质是两种模式,一是开漏输出,一是推挽输出
1.开漏输出:输出信号“0”时会激活N-MOS,N-MOS导通,输出管脚与VSS连通,输出低电平;输出信号“1”时不激活P-MOS,同时N-MOS也不导通,输出管脚为高阻态。因此一般开漏输出管脚与外部上拉电阻连接,输出信号“1”时管脚会被外部上拉电压钳高,该模式可以需要用于匹配电平的场合。
2.推挽输出:输出信号“0”时会激活N-MOS,N-MOS导通,输出管脚与VSS连通,输出低电平。输出信号“1”时会激活P-MOS,P-MOS导通,输出管脚与VDD连通,输出高电平电平。这个模式输出高低电平时会分别导通一个MOS管,既提高电路负载能力,又提高开关速度2。
3.复用开漏输出:实质上是和开漏模式一样,在GPIO复用功能时使用
4.复用推挽输出:实质上是和推挽模式一样,在GPIO复用功能时使用
输出速度
输出模式下,有3种输出速度可选(2MHz,10MHz和50MHz),这个速度是指IO口驱动电路的响应速度而不是输出信号的速度。通过选择速度来选择不同的驱动输出模块,达到最佳的噪声控制和降低功耗的目的。
高频信号输出会带来功耗增加和噪声增大;低频信号输出可能会带来信号失真,因此需要根据实际需要来选择合适的速度输出3。
4;
-32位端口配置锁定寄存器(LCKR)
该寄存器用于锁定端口管脚
bit16是锁键位LCKK,该位为0代表锁键未激活,为1代表锁键已激活;锁键激活需要向锁键位写入特定的写入序列(写1->写0->写1->读0->读1)(最后一次读指令可以取消)
bit[0:15]为锁位LCKy,这些位可读可写,但只能在LCKK为0(锁键未激活)时写入,该位为0代表不锁定,为1代表锁定。
4.基于V3.5库函数的GPIO配置函数(野火开发板教程)
void GPIO_configuration(void)
{
//定义结构体
GPIO_InitTypeDef GPIO_InitStructure;
//开启端口C的时钟
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);
//选择需要控制的管脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7;
//选择推挽输出模式
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//输出速度为50MHz
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//初始化GPIOC
GPIO_Init(GPIOC, &GPIO_InitStructure);
//置高各个管脚
GPIO_SetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7);
}
肖特基触发器是一种阈值开关电路,具有突变输入——输出特性的门电路。这种电路被设计成阻止输入电压出现微小变化(低于某一阈值)而引起的输出电压的改变 ↩
http://bbs.elecfans.com/infocenter.php?mod=space&uid=961328&do=blog&id=242993 ↩
http://blog.csdn.net/dldw8816/article/details/51450833 ↩
既可以通过ODRy设置管脚(Pin),也可以通过BSy和BRy设置,但是通过ODRy设置管脚(Pin)需要首先读取保存ODRy数据,再进行设置管脚(Pin)在这个过程中有可能被中断影响—–引用http://www.cnblogs.com/shangdawei/p/4723941.html ↩
下一篇:stm32中gpio的学习浅谈
史海拾趣
|
请教大家一个线程的切换问题:请高手们指点指点 在我的程序中用到好几个线程,而且在线程中频繁用到SLEEP()延时函数, 这样可能会造成线程间的频繁切换,可能会使软件的运行效率降低, 我想知道两个线程之间的切换需要多少时间 ...… 查看全部问答> |
|
请问下大家,比如我在做一个项目,想把一些数据存储在flash当中的一个扇区里,但是如果这个扇区损坏了,除了备份以外我们怎么做才能保证数据不丢失或仍然可用呢?软件或硬件的方法都可以,大家帮忙讨论下,谢谢大家… 查看全部问答> |
|
SOIC窄体16PIN1.27mm脚距,这种封装在元件库里焊盘一般宽和长是多少? SOIC窄体16PIN1.27mm脚距,这种封装在元件库里焊盘一般宽和长是多少? 在orcad中发现宽有0.6mm,长竟然有2.5mm。 焊盘的画法是否有相应的标准来参照啊… 查看全部问答> |
|
timing toggle active inactive四种模式有什么区别 比较匹配时,输出管脚可以保持它的电平(OCxM=000)、 被设置成有效电平(OCxM=001)、 ?? 被设置成无有效电平(OCxM=010) ? ? 或进行翻转 ...… 查看全部问答> |




