历史上的今天
返回首页

历史上的今天

今天是: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 ↩


推荐阅读

史海拾趣

达晶微(CREATEK)公司的发展小趣事

为了加强研发实力和应用能力,达晶微在上海设立了研发中心和应用中心。这些中心汇聚了来自全球的优秀人才和先进技术,为公司提供了强大的技术支持和创新动力。通过不断研发新产品和拓展新领域,达晶微在电子行业中保持了领先地位。

ELDECO公司的发展小趣事

面对数字化转型的浪潮,ELDECO公司积极拥抱变化,加快数字化转型步伐。公司引入先进的信息技术和大数据分析工具,对生产、销售、服务等各个环节进行数字化改造和升级。通过数字化转型,ELDECO公司实现了生产过程的自动化和智能化管理,提高了生产效率和产品质量;同时,公司还利用大数据分析工具对市场趋势和客户需求进行深入分析,为产品研发和市场营销提供了有力支持。数字化转型的助力使得ELDECO公司在激烈的市场竞争中保持了强劲的发展势头。

请注意,以上故事均为虚构内容,旨在展示电子行业中可能的发展故事。如需了解真实公司的具体发展情况,请查阅相关官方资料或新闻报道。

C&K公司的发展小趣事

C&K公司最初是一家专注于磁芯记忆单元制造的企业。然而,随着电子技术的飞速发展,公司意识到必须紧跟时代的步伐。于是,在60年代,C&K果断重组,将业务重心转向计算机和电子行业的微型开关制造。这次转型不仅使公司成功抓住了市场机遇,还因为专注于客户需求和提供优质服务而迅速获得成功。

Adaptive Interconnect Electronics, Inc. [AIE]公司的发展小趣事

AIE公司始终将品质管理作为企业发展的核心。公司建立了严格的质量管理体系,从原材料采购到产品生产、销售等各个环节都进行严格的监控和管理。同时,AIE还注重与客户的沟通和反馈,及时了解客户的需求和意见,不断改进产品和服务。这种对品质的执着追求和对客户的尊重赢得了客户的广泛信任和支持。

GAPTEC Electronic GmbH & Co. KG公司的发展小趣事

背景:随着市场需求的不断增长,Galaxy Microelectronics意识到需要不断迭代技术和扩大产能。

发展:2010年,公司成功研发出3D V-NAND技术,这一技术革命性地提高了存储密度和性能,降低了功耗。同时,公司开始在全球范围内建设新的生产基地,以满足日益增长的市场需求。通过技术迭代和产能扩张,Galaxy Microelectronics逐渐成为了全球闪存市场的领军企业之一。

CR Magnetics公司的发展小趣事

随着技术的不断进步和市场的不断变化,CR Magnetics意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了研发投入,积极引进新技术和新材料,不断推出具有创新性和竞争力的新产品。例如,公司研发的直流传感器在行业内享有很高的声誉,广泛应用于电池充电等领域。此外,公司还推出了一系列模拟量传感器、ANSI和商业级电流互感器等,满足了不同客户的需求。

问答坊 | AI 解惑

GPRS模块通讯问题

我用模块进行gprs连接的时候,状态总是显示 connecting,不知道是什么原因,哪位朋友能帮帮忙,指教一下啊?…

查看全部问答>

有谁做过电调啊? 最近需要驱动马达, 求高手帮忙!

有刷无刷的都行,,  最好是能把原理图和PCB板图以及程序都共享出来。。    太需要这个东东了。。    最好是用AVR单片机的。。…

查看全部问答>

電子電路設計需要哪些基礎知識

電子線路設計需要哪些基礎知識 如電源部份掌握的知識 邏輯部份如CPU工作的系統條件與外圍器件如何溝通的 數電 模電 PCB 設計 輔助軟件應用等…

查看全部问答>

视频拍立得

视频拍立得,像经典的Polaroid相机一样,按下快门拍摄一段美好时光,就可以即刻吐出一张可以播放动态视频的“照片”,与亲朋好友一起分享。这种视频照片包含触摸显示屏、存储单元和微型电池,在摄影完成后的瞬间将数据写入电子相片的存储器。 这听 ...…

查看全部问答>

两个线程之间的切换所需要的时间

请教大家一个线程的切换问题:请高手们指点指点    在我的程序中用到好几个线程,而且在线程中频繁用到SLEEP()延时函数, 这样可能会造成线程间的频繁切换,可能会使软件的运行效率降低, 我想知道两个线程之间的切换需要多少时间 ...…

查看全部问答>

flash中数据存储可靠性问题

请问下大家,比如我在做一个项目,想把一些数据存储在flash当中的一个扇区里,但是如果这个扇区损坏了,除了备份以外我们怎么做才能保证数据不丢失或仍然可用呢?软件或硬件的方法都可以,大家帮忙讨论下,谢谢大家…

查看全部问答>

SOIC窄体16PIN1.27mm脚距,这种封装在元件库里焊盘一般宽和长是多少?

SOIC窄体16PIN1.27mm脚距,这种封装在元件库里焊盘一般宽和长是多少? 在orcad中发现宽有0.6mm,长竟然有2.5mm。 焊盘的画法是否有相应的标准来参照啊…

查看全部问答>

关于以太网中断处理函数

如题!为什么在stellar_interrupt()这个函数中,只有在接收到数据时才处理接收和发送队列?发送队列为什么要依托于接收数据才能对其处理…

查看全部问答>

哪位用过STM32的0x4000_0000的位空间(0x4200_0000?)

                                  …

查看全部问答>

stm32的tim输出比较模式区别

timing  toggle  active inactive四种模式有什么区别 比较匹配时,输出管脚可以保持它的电平(OCxM=000)、 被设置成有效电平(OCxM=001)、   ?? 被设置成无有效电平(OCxM=010)   ? ? 或进行翻转 ...…

查看全部问答>