历史上的今天
返回首页

历史上的今天

今天是:2025年02月04日(星期二)

2021年02月04日 | STM32F4——GPIO基本应用及复用

2021-02-04 来源:eefocus

一、IO基本结构:

针对STM32F407有7组IO。分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口。


当中IO口的基本结构例如以下:

 

二、工作方式:

STM32F4工作模式有8种,当中4中输入模式。4种输出模式,分别为:输入浮空、输入上拉、输入下拉、模拟模式、开漏输出、开漏复用输出、推挽输出、推挽复用输出。


1、输入模式:

在输入浮空模式下。电路既不上拉也不下拉,通过施密特触发器送到输入数据寄存器在送入到CPU。输入上拉和下拉模式各自是在电路中经过上拉和下拉后通过施密特触发器送入的CPU,模拟模式下,施密特触发器关闭后信号直接通过模拟通道至片上外设。


2、输出模式:

开漏输出模式下。CPU发送输入直接或间接的控制输出数据寄存器,通过输出控制电路,当信号为1时,N—MOS管是关闭的,所以IO电平就是受上下拉电路的控制。当信号为0时。N—MOS管导通输出就是下拉低电平;推挽输出模式下。信号为1时,P-MOS管导通,N-MOS管截止,输出就是上拉高电平,当信号为0时。P-MOS管截止,N-MOS管导通。输出就是下拉低电平;对于开漏复用和推挽复用模式与开漏和推挽的不同之处就是在于信号的开源不同。开漏复用和推挽复用的信号来源是片上的外设模块。


三、相关寄存器

每个通用的IOport都包含4个32位的配置寄存器(GPIOx_MODER、GPIOx_OTYPER、PIOx_OSPEEDR和GPIOx_PUPDR)。2个32位的数据寄存器(GPIOx_IDR和GPIOx_ODR),1个32位置位/复位寄存器(GPIOx_BSRR),1个32位锁定寄存器(GPIOx_LCKR)和2个32位复用功能选择寄存器(GPIOx_AFRL)。


以下对其进行介绍。

    1、工作模式配置:1、port模式(GPIOx_MODER):用来配置port的模式为输入、输出、复用和模拟模式。

2、port类型(GPIOx_OTYPER):用来配置寄存器的模式为输出推挽还是输出开漏。3、port速度(PIOx_OSPEEDR):用来配置port的信息传输速率。4、port上下拉(GPIOx_PUPDR):用来配置port的无上下拉、上拉、下拉和保留模式。

    2、电平配置:1、输入数据(GPIOx_IDR):用到其低16位。分别对应该组IO口的一个电平状态。

2、输出数据(GPIOx_ODR):与输入数据寄存器相似的功能。3、置位和复位(GPIOx_BSRR):与前两个不同的是置位和复位寄存器用到了32位。低16为设置为1时,用于置1对应位。高16位设置为1时,用于置0对应位。而低16位和高16位设置为0时不影响原值。

    3、复用功能配置:以下做对应说明。


IO复用

一、复用背景:

因为考虑到IO口的有限,为了节省IO资源。同一时候为了更好的协调IO之间的工作。所以有必要在适当的时候给IO口赋予不同的功能。一个IO口在不同的时候能够承担不同的工作,这就是IO的复用功能。


二、复用原理:

每个IO口都会接有一个选择器,这个选择器经过对应寄存器(GPIOx_AFRH和GPIOx_AFRL)的配置之后就能够做不同的功能的应用,这个寄存器就是GPIOx_AFRH和GPIOx_AFRL。


三、寄存器配置:

每一组IO口都有一个AFRL和一个AFRH寄存器。他们都是32位的寄存器,当中每4位配置一个IO口的功能,则相应的GPIOx_AFRL就用来配置第0-7个IO口,GPIOx_AFRH就用来配置第8-15个IO口。


每4位配置一个IO口,则4位数据的相关取值就会有相应的相应功能。如此一来就做好了相关配置。


综述:

这些相关的配置过程会用到对应的函数和对应变量,熟练使用相关的函数,同一时候对函数的功能了解后才会应用的更加得心应手。同一时候也能够写自己的一些相关函数来进行操作。当然也能够直接操作相关的寄存器。


推荐阅读

史海拾趣

GCi Technologies公司的发展小趣事
通过外部电阻或电位器设置所需的恒流值。
Excelsys公司的发展小趣事

品质是Excelsys公司的生命线。公司始终坚持严格的品质控制标准,从原材料采购到生产制造的每一个环节,都经过严格的质量检测。这种对品质的执着追求,让Excelsys的产品在市场上赢得了良好的口碑。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持,进一步提升了品牌的信誉度。

赛微(Cellwise)公司的发展小趣事

在技术创新和产品研发的过程中,赛微高度重视知识产权的保护和管理。公司积极申请各类专利和软件著作权,加强知识产权保护力度。截至目前,赛微已经拥有国际/国内软件著作权98项,国际/国内专利166项,正在申请的国际/国内专利64项。这些知识产权的积累不仅提升了公司的核心竞争力,也为公司的长期发展奠定了坚实基础。

EIC [EIC discrete Semiconductors]公司的发展小趣事

EIC公司一直秉持着环保责任和社会责任感。公司在生产过程中积极采用环保材料和工艺,减少废弃物排放和能源消耗。同时,EIC还积极参与社会公益活动,为社会做出了积极贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

EBK Kruger GmbH & Co KG公司的发展小趣事

随着公司技术的不断成熟和产品的多样化,EBK Kruger开始将目光投向国际市场。公司参加了多个国际电子展会,并成功与多家国际知名企业建立了合作关系。通过与这些企业的合作,EBK Kruger不仅扩大了市场份额,还学到了先进的国际管理经验和技术知识,为公司的发展注入了新的活力。

友盟(AP)公司的发展小趣事

友盟(AP)公司的发展,也离不开与众多合作伙伴的紧密合作。公司始终坚持开放、合作的理念,积极寻求与各行各业的合作机会。通过与手机厂商、应用开发者、广告商等建立合作关系,友盟成功将自身的技术优势和数据分析能力转化为商业价值。同时,友盟也通过合作伙伴的支持和反馈,不断优化产品和服务,实现了与合作伙伴的共赢发展。

问答坊 | AI 解惑

H桥电机驱动原理与应用

H桥电机驱动原理与应用原著:吉姆布朗 1998年4月 整理上传:鲍勃乔丹 2002年9月 翻译:韦文潮 2007年12月本文的内容是要告诉大家什么是H桥以及它如何是工作的。 我们首先来看马达是如何转动的呢?举个例子:你手里拿着一节电池,用导线将马达和 ...…

查看全部问答>

添加的开机运行程序 卡住

写了一个小的应用程序,通过修改注册表,设置成开机自动运行.(我用vs2005远程跑是没问题的) 可是,开机时会卡在log界面上.请问下高手,问题在哪里? 添加注册表如下: [HKEY_LOCAL_MACHINE\\init] \"Launch50\"=\"startup.exe\" \"Depend50\"=hex:14 ...…

查看全部问答>

硬件条件和外界条件一定的情况下,如何提高Wifi连接速度

能否通过一些配置,比如连接时指定路由器IP地址等,来提高Wifi打开时的连接速度呢???…

查看全部问答>

有关CE上显示字型的问题

现在我的系统中使用的字型文件是一个名叫:mingliu.ttc的字型文件(这个是一个能支持繁体中文的字型文件)。现在我把系统的字体修改为:使用New Times Roman字型,这样就会出现一个问题,在显示中文的地方就会出现口口(框框)不能正常显示。这应该 ...…

查看全部问答>

如何让socket使用串口设备而不使用以太网设备

在嵌入式linux2.6.15内核下开发,目前开发需求要用串口传输数据,然而原先是直接调用socket通过访问以太网传输数据的,但是希望保留socket功能,希望变换物理介质,让socket将数据传递给串口进行收发工作。万望大虾的指点。在此先谢谢了!!!…

查看全部问答>

实测UTC-903SE开阔地距离2100米,真是不错

具体大家看看这家公司的产品:http://www.newmsg.net/Product/NewMsg_UTC903SE.asp也可以 加我QQ: 1425156046…

查看全部问答>

从0开始学习TI--M3……1

   去年年末的时候团了LM3S9B96和LM3S811,记得那时候说拍0.01元的LM3S811是要交学习笔记的,所以从今天开始写学习笔记,还当时的承诺。持续时间大约为50天,每两天一篇,前15份学习笔记是基于811,后10份基于9B96。   ①先上图 ...…

查看全部问答>

M4 -- 这么强大!

http://www.ti.com/lit/gpn/lm4f232h5qc     Parametrics LM4F232H5QC Flash (KB) 256     StellarisWare in ROM Yes     DMA 32     SafeRTOS 0     ...…

查看全部问答>

如何创建自己的XDC platform package??

       小弟最近需要用TI的CodecEngine,使用的平台是合众达的6467T。在XDC工具中,有一个关于Platform的设定项。但是TI所给Platform package中是没有合众达平台的platform package的。于是我想自己创建一个。但是TI ...…

查看全部问答>

论坛里有人准备DIY四轴飞行器电路用STM32F103

https://bbs.eeworld.com.cn/thread-355890-1-1.html…

查看全部问答>