历史上的今天
返回首页

历史上的今天

今天是:2025年08月07日(星期四)

正在发生

2019年08月07日 | stm32f4端口寄存器配置

2019-08-07 来源:eefocus

一,io口资源

STM32F407有7组IO,分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口。其中IO口的基本结构如下:



二,gpio工作方式

1,四种输入模式

输入浮空


输入上拉


输入下拉


模拟输入


2,四种输出模式

开漏输出


开漏复用


推挽输出


推挽复用


3,引脚功能


1)作为普通 GPIO 输入:根据需要配置该引脚为浮空输入、 带弱上拉输入或带弱下拉输入,同时不要使能

该引脚对应的所有复用功能模块。

2)作为普通 GPIO 输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复

用功能模块。

3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。

4)作为内置外设的输入:根据需要配置该引脚为浮空输入、 带弱上拉输入或带弱下拉输入,同时使能该引

脚对应的某个复用功能模块。

5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所

有复用功能模块。

 


三,GPIO寄存器

stm32f4是通过十个寄存器设置一组(16个)io口的


1,端口模式寄存器(GPIOx_MODER)

该寄存器32位都可用,每个io口占用2位,可以被设置为4种模式


00:输入模式;   01:输出模式;  10:复用功能模式;  11:模拟模式;



2,端口输出类型寄存器(GPIOx_OTYPER)

该寄存器16位可用,每个io口占用1位,可以被设置为2种模式(0,1)


0:推挽输出;  1:开漏输出;



3,端口输出速度寄存器(GPIOx_OSPEEDR)

该寄存器32位都可用,每个io口占用2位,可以被设置为4种模式


00:2MHZ;   01:25MHZ;  10:50MHZ;  11:30 pF 时为 100 MHz(15 pF 时为 80 MHz 输出(最大速度));


4,端口上拉下拉寄存器(GPIOx_PUPDR)

该寄存器32位都可用,每个io口占用2位,可以被设置为4种模式


00:无上下拉;   01:上拉;  10:下拉;  11:保留;


5,端口输入数据寄存器(GPIOx_IDR)(只读,不可被设置)

该寄存器16位可用,每个io口占用1位,

这些位为只读形式,只能在字模式下访问。它们包含相应 I/O 端口的输入值。



6,端口输出数据寄存器(GPIOx_ODR)

该寄存器16位可用,每个io口占用1位


端口输出数据 这些位可通过软件读取和写入


注意区分与GPIOx_BSRR寄存器的区别(https://blog.csdn.net/alanzjl/article/details/43857963);



7,端口置位/复位寄存器(GPIOx_BSRR)

该寄存器32位都可用:0-15为该组16个io口的置位控制(0:不执行任何操作;1:置位)


                                    16-31为该组16个io口的复位控制(0:不执行任何操作;1:复位)



8,端口配置锁存寄存器(GPIOx_LCKR)

位 15:0 LCKy: 端口 x 锁定位 y (Port x lock bit y) (y= 0..15)

这些位都是读/写位,但只能在 LCKK 位等于“0”时执行写操作。

0:端口配置未锁定

1:端口配置已锁定


位 16 LCKK[16]: 锁定键 (Lock key)

可随时读取此位。可使用锁定键写序列对其进行修改。

0:端口配置锁定键未激活。

1:端口配置锁定键已激活。直到 MCU 复位时,才锁定 GPIOx_LCKR 寄存器。



9,复位功能寄存器(GPIOx_AFRL & GPIOx_AFRH)

该寄存器32位都可用,每个io口占用4位,可以被设置为16种复用模式中的一种


  GPIOx_AFRL 用于0-7位的端口配置


  GPIOx_AFRH 用于8-15位的端口配置


 


四,设置步骤

1.     使能相关时钟


2.     设置相应的IO口为输入或输出


3.     设置输入输出的类型


4.     设置输出的速度(如果设置为输入,此步跳过)


5.     如果输出速度>=50M,开启补偿单元


6.     设置上拉下拉寄存器


7.     通过复位置位寄存器和输入输出数据寄存器进行操作


推荐阅读

史海拾趣

General Cable公司的发展小趣事
采用CMOS技术,功率消耗很小,静态电流典型值为0.02μA,无需使用电源控制开关。
GarrettCom公司的发展小趣事

研发:GarrettCom(现为Belden的一部分)始终将技术创新作为企业发展的核心驱动力。公司不断投入研发资源,致力于开发更加先进、可靠的工业网络通信产品。通过持续的技术创新,GarrettCom不仅推动了工业通信技术的进步,还为客户提供了更加高效、便捷的通信解决方案。

应用:这些创新产品被广泛应用于工业自动化、交通监控、能源管理等多个领域,为客户创造了巨大的价值。同时,GarrettCom还积极参与国际标准的制定和推广工作,为行业的标准化发展做出了积极贡献。

DAESAN公司的发展小趣事

在电子行业的激烈竞争中,DAESAN公司也曾遭遇过困境。一次严重的金融危机让公司的资金链几乎断裂,许多项目被迫中断。然而,DAESAN公司并没有放弃,他们积极寻求外部支持,同时加强内部管理,降低成本,提高效率。在困境中,公司不断总结经验教训,优化经营策略。最终,他们成功度过了危机,实现了逆境中的成长。

台湾岱恩(DAIN)公司的发展小趣事

在电子行业的激烈竞争中,DAESAN公司也曾遭遇过困境。一次严重的金融危机让公司的资金链几乎断裂,许多项目被迫中断。然而,DAESAN公司并没有放弃,他们积极寻求外部支持,同时加强内部管理,降低成本,提高效率。在困境中,公司不断总结经验教训,优化经营策略。最终,他们成功度过了危机,实现了逆境中的成长。

Ametek公司的发展小趣事

在电子行业中,环保问题一直备受关注。DAESAN公司深知自己的社会责任和担当,因此将环保理念融入企业的生产经营之中。他们采用环保材料和生产工艺,减少污染物排放;同时,他们还积极参与各种环保活动和公益事业,推动行业的可持续发展。DAESAN公司的环保举措赢得了社会的广泛赞誉和尊重。

请注意,以上故事均基于假设性的事实进行虚构,可能与DAESAN公司的实际情况存在出入。如需了解更多关于DAESAN公司在电子行业中的具体发展故事,请查阅相关新闻报道和官方资料。

Hei Inc Optoelectronic Division公司的发展小趣事
无触点操作减少了机械动作产生的噪音,并降低了电磁干扰,对工作环境和周边设备更为友好。

问答坊 | AI 解惑

基于嵌入式PC的PIII计算机系统设计与实现

目前嵌入式计算机系统应用呈现多样化、小型化、多层次的趋势,在工业现场和军事用途中扮演着越来 越重要的角色。随着各种应用对操作系统和软件要求的日益提高,使得具有广泛适应性的PC构架的嵌入 式计算机系统倍受青睐。尤其是Compact PCI总 ...…

查看全部问答>

一个免费的DSP/FPGA讲座,有感兴趣的坛友么?

现场会有很多DSP/FPGA相关行业工程师参加,欢迎参加交流哈~~~ 内容:1、C6000 DSP软件开发环境CCS介绍)             2、FPGA典型应用领域及解决方案            ...…

查看全部问答>

orcad training PPT 01

orcad training PPT 01…

查看全部问答>

6410硬件解码和Directshow

平台:三星6410 + wince6.0 如何将三星的硬件解码加到Directshow里面. 三星提供的MFCDecoderFilter加了上去好像没用. 请各位指点.…

查看全部问答>

OK2440开发板上电后进不了系统

求教 什么ok2440开发板上电后进不了系统,触摸屏上只有几种颜色在变化。前阶段开发板还可以用的,放了一段时间后怎么会出现上面的问题?我该怎么做? 谢谢了…

查看全部问答>

请给推荐一款STM32的开发板

我想用STM32f103的芯片, 有必要买块开发板吗? 请给推荐一款不错的开发板!…

查看全部问答>

STM3210B-MCKIT的代销商

                                 版主,可否提供STM3210B-MCKIT的代销商的联系方式。…

查看全部问答>

USB2.0 学习板原理图(ad文件)

由于我用adobe reader看不了论坛里下的那个电路图,就按照下的说明书上的图画了一个,顺便把原理图库也发上来。有于画的时间比较仓促,有错误的地方请大家多包涵!封装库我有时间再弄!     本人用的是designer6.8版本。…

查看全部问答>

申请430fr5739

使用msp430 1年多了,做低功耗需要整板的配合,如ldo等使用,程序的写法,每个环节都做好才能达到低功耗的目标。准备申请430fr5739做无限传感网络…

查看全部问答>