历史上的今天
返回首页

历史上的今天

今天是:2025年02月20日(星期四)

正在发生

2021年02月20日 | STM32F4工程--IO口--GPIO工作模式详解

2021-02-20 来源:eefocus

一、基础知识

1、STM32F429IGT6

①一共有9组IO: PA~PI

②其中PA~PH 每组16个IO PI只有PI0~PI11

③一共有140个IO口: 16*8+12=140

2、工作模式

四种输入模式:输入浮空、输入上拉、输入下拉、模拟输入 ;

四种输出模式:开漏输出(带上拉或者下拉)、开漏复用功能(带上拉或者下拉)、推挽式输出(带上拉或者下拉)、推挽式复用功能(带上拉或者下拉);

四种最大输出速度: -2MHZ低速、-25MHz中速、 -50MHz快速、-100MHz 高速。

3、IO口可以容忍5V电压。


二、GPIO的8种工作模式

1、浮空输入模式

①信号由外部输入到引脚。

②首先遇到上拉下拉电阻,这个是没有被设置的,所以不用管。

③其次遇到的是施密特触发器,这个开关是打开的。

④信号通过施密特触发器,读入到输入数据寄存器。

⑤通过设置为浮空输入模式,CPU就可以取读取IO口的输入电平。

⑥下面的输出控制部分是不起作用的,模拟、复用功能输入也是不起作用的。

2、输入上拉模式

①输入上拉模式和输入浮空模式是非常相似的,信号由外部输入到引脚。

②首先遇到上拉下拉电阻,这时会打开上拉电阻,上拉电阻和VDD相连接。

③其次遇到的是施密特触发器,这个开关是打开的。

④信号通过施密特触发器,读入到输入数据寄存器。

⑤通过设置为输入上拉模式,CPU就可以取读取IO口的输入电平。

⑥下面的输出控制部分是不起作用的,模拟、复用功能输入也是不起作用的。

3、输入下拉模式

①输入下拉模式和输入上拉模式是非常相似的,信号由外部输入到引脚。

②首先遇到上拉下拉电阻,这时会打开下拉电阻,下拉电阻和VSS相连接。

③其次遇到的是施密特触发器,这个开关是打开的。

④信号读入到输入数据寄存器。

⑤通过设置为输入下拉模式,CPU就可以取读取IO口的输入电平。

⑥下面的输出控制部分是不起作用的,模拟、复用功能输入也是不起作用的。

4、模拟模式

①信号由外部输入到引脚。

②首先遇到上拉下拉电阻,这时不打开上下拉电阻。

③在遇到施密特触发器之前,走了模拟通道,施密特触发器这个开关是关闭的。

④这时候信号会读到ADC片外设上,来进行读取信号。

⑤CPU通过读写ADC外设的寄存器,来读取模拟信号,并把它转换为数字信号。

⑥下面的输出控制部分是不起作用的,复用功能输入也是不起作用的。

5、开漏输出模式

①CPU会写置位/复位寄存器,然后会映射到输出数据寄存器。或者我们可以直接写输出数据寄存器。

②然后经过输出控制电路。

③然后进入N-MOS管,此时P-MOS管是不起作用的。

④如果置位/复位寄存器写入数据为“1”,则输出数据寄存器位为“1”,经过输出控制电路,传送到N-MOS管,N-MOS管处于关闭状态,并不会反映到IO口。

如果置位/复位寄存器写入数据为“0”,N-MOS管处于开状态,则会将VSS电平输出到IO口。

⑤此时我们需要在端口处设置上拉电阻,或者外接上拉电阻。

6、开漏复用输出模式

①复用功能输出连接的是片上外设模块。

②通过片上外设模块给输出控制电路一个信号,然后传到N-MOS管,此时P-MOS管是不起作用的。

③如果片上外设模块数据为“1”,则N-MOS管处于关闭状态,并不会反映到IO口。

如果片上外设模块数据为“0”,N-MOS管处于开状态,则会将VSS电平输出到IO口。

④此时我们需要在端口处设置上拉电阻,或者外接上拉电阻。

⑤在该模式下,施密特触发器处于开启状态,并将信号传输到输入数据寄存器中。

⑥CPU通过读取输入数据寄存器的值,来获取当前IO口的输出状态。

7、推挽输出模式

①CPU会写置位/复位寄存器,然后会映射到输出数据寄存器。或者我们可以直接写输出数据寄存器。

②然后经过输出控制电路。

③然后进入MOS管,此时P-MOS管和N-MOS管都是起作用的,都处于工作状态。

④如果置位/复位寄存器写入数据为“1”,则输出数据寄存器位为“1”,经过输出控制电路,传送到MOS管,N-MOS管处于关闭状态,P-MOS管前面有一个取反器,于是P-MOS处于开启状态,将VDD电平传输到IO口引脚上面。

如果置位/复位寄存器写入数据为“0”,P-MOS管处于关闭状态,N-MOS管处于开状态,会将VSS电平传输到IO口引脚上。

⑤在该模式下,施密特触发器处于开启状态,并将信号传输到输入数据寄存器中。

⑥CPU通过读取输入数据寄存器的值,来获取当前IO口的输出状态。

8、推挽复用输出模式

①复用功能输出连接的是片上外设模块

②通过片上外设模块给输出控制电路一个信号,然后传到MOS管,此时P-MOS管是不起作用的,此时P-MOS管和N-MOS管都是起作用的,都处于工作状态。

③如果片上外设模块数据为“1”,传送到MOS管,N-MOS管处于关闭状态,P-MOS管前面有一个取反器,于是P-MOS处于开启状态,将VDD电平传输到IO口引脚上面。

如果片上外设模块数据为“0”,P-MOS管处于关闭状态,N-MOS管处于开状态,会将VSS电平传输到IO口引脚上。

⑤在该模式下,施密特触发器处于开启状态,并将信号传输到输入数据寄存器中。

⑥CPU通过读取输入数据寄存器的值,来获取当前IO口的输出状态。


三、补充

1、推挽输出模式是可以输出强高低电平的,连接数字器件。

2、开漏输出,只可以输出强低电平,高电平得靠外部电阻拉高,输出端相当于三极管的集电极,要想得到高电平需要上拉电阻才行,适合用于做电流型的驱动,其吸收电流的能力相对较强(一般20ma以内)。

3、上电复位后IO口状态

上电复位后,GPIO默认为输入浮空状态,部分特殊功能引脚为特定状态。

复位后,调试引脚处于复用功能上拉/下拉状态: PA15:JTDI处于上拉状态 PA14:JTCK/SWCLK处于下拉状态 PA13:JTMS/SWDAT处于下拉状态 PB4:NJTRST处于上拉状态 PB3:JTDO处于浮空状态


推荐阅读

史海拾趣

FCI [First Components International]公司的发展小趣事

在电子行业中,FCI(First Components International)公司作为一家知名的连接器和互联系统制造商,其发展历程中确实有许多值得分享的故事。以下是关于FCI公司的五个发展故事:

  1. FCI的气体流量计与传感器技术突破

FCI作为一家全球性的气体流量计、气体和液体流量开关以及液位开关的制造商,其产品广泛应用于各种工业领域。为了满足不断增长的市场需求,FCI投入大量研发资源,成功开发出高精度、高可靠性的气体流量计和传感器。这些产品在化工、能源、环保等多个领域得到了广泛应用,为FCI赢得了良好的市场口碑。随着技术的不断创新和产品质量的持续提升,FCI逐渐成为了行业内的佼佼者。

  1. FCI中国分公司的成立与服务升级

随着中国市场的快速发展,FCI看到了在中国市场发展的巨大潜力。为了更好地服务中国客户,FCI决定在中国成立分公司。分公司的成立,不仅为FCI提供了更贴近本地市场的服务平台,还为其在中国市场的业务拓展提供了有力支持。分公司雇佣了一批在过程仪表和测量控制方面经验丰富的员工,并新增了数条经过认证的高精度流体标定台,以提供专业的服务和技术支持。这一举措显著提升了FCI在中国市场的竞争力和品牌影响力。

  1. FCI的AirMax VS高速背板连接器技术革新

为了满足未来高速数据传输的需求,FCI投入巨资研发新一代的高速背板连接器技术。经过多年的努力,FCI成功开发出了先进的AirMax VS高速背板连接器技术,为未来传输速率达到40Gb/s的设计奠定了基础。这一技术的推出,不仅巩固了FCI在连接器行业的领先地位,还为其在高速数据传输领域的发展打开了新的市场空间。

  1. FCI与航空领域的深度合作

随着航空技术的不断发展,对高精度传感器和流量计的需求也日益增长。FCI凭借其在气体流量计和传感器方面的技术优势,成功打入了航空领域市场。公司与多家知名航空企业建立了深度合作关系,为其提供定制化的产品和解决方案。这些产品在航空器的燃油系统、液压系统以及环境控制系统中发挥着重要作用,为航空安全提供了有力保障。

  1. FCI的全球化战略布局

为了适应全球化的市场趋势,FCI积极拓展其国际业务。公司通过并购、合资等方式,在全球范围内建立了多个生产基地和销售网络。这些举措不仅提高了FCI的生产效率和响应速度,还使其能够更好地服务全球客户。同时,FCI也加大了对新兴市场的投入,通过与当地合作伙伴的紧密合作,成功打入了多个具有潜力的市场领域。

以上五个故事展示了FCI在电子行业发展中的关键里程碑和重大成就。从技术创新到市场拓展,再到全球化布局,FCI始终保持着敏锐的市场洞察力和强大的竞争力,不断推动着电子行业的发展进步。

BROTHER公司的发展小趣事

在电子行业的发展过程中,技术创新始终是BROTHER公司的重要驱动力。公司注重研发投入,拥有一支高素质的研发团队,不断推出具有创新性和竞争力的新产品。同时,BROTHER还积极与高校、科研机构等合作,开展产学研合作,推动技术创新和产业升级。通过技术创新,BROTHER不仅提升了产品质量和性能,还降低了生产成本,提高了市场竞争力。

E. Dold & Söhne KG公司的发展小趣事

在追求经济效益的同时,E. Dold & Söhne KG公司也高度重视环保和可持续发展。公司积极引进环保技术和设备,降低生产过程中的能耗和废弃物排放。此外,公司还倡导绿色采购和绿色供应链管理,推动整个产业链向环保和可持续方向发展。这种对环保和可持续发展的关注使得E. Dold & Söhne KG公司在行业内树立了良好的社会形象。

BCD Semi(Diodes)公司的发展小趣事

为了进一步扩大市场份额,BCD Semi(Diodes)公司积极寻求与国际知名企业的合作。通过与国际合作伙伴的共同努力,公司成功打入了多个海外市场,并在全球范围内建立了稳定的销售渠道。同时,公司还与国际同行开展技术交流与合作,共同推动模拟半导体技术的发展。

常忆科技(CHINGIS)公司的发展小趣事

为了满足不断增长的市场需求,常忆科技积极拓展国内外市场。公司通过与全球知名的电子产品制造商建立合作关系,成功将产品打入国际市场。同时,常忆科技还积极参加各类国际电子展会和技术交流活动,展示其最新的技术和产品,吸引了众多国际客户的关注。

随着国际化战略的深入实施,常忆科技的产品逐渐在全球范围内得到应用。这不仅提升了公司的品牌知名度和影响力,也为公司带来了丰厚的经济回报。

ENERGIZER公司的发展小趣事

近年来,随着智能设备的普及,消费者对电池的需求也日益增长。为了满足这一需求,ENERGIZER不断加大研发投入,推出了一系列高性能的电池产品。其中,高能量锂电池的研发成功,为智能设备的发展提供了强有力的支持。这款电池具有高能量密度、长寿命等优点,广泛应用于智能手机、平板电脑等高端电子设备中。同时,ENERGIZER还不断优化生产工艺,降低成本,为消费者提供更优质、更实惠的电池产品。

这些故事展示了ENERGIZER公司在电子行业发展中的创新力和市场洞察力,也体现了该公司对环保和消费者需求的关注与响应。作为全球领先的电池制造商,ENERGIZER始终保持着技术创新的步伐,为全球电子行业的发展做出了重要贡献。

问答坊 | AI 解惑

28335控制板ADDA的奇怪问题

最近一直都在调试我的控制板上外扩的ADDA,但是遇到了一个非常让人不爽的问题:同一个程序在不同的电脑上现象不同,在我的笔记本上ADDA都能调通,但是在实验室的电脑死活不行。前一段时间CCS3.3不知道为什么老出问题,我卸了好几次,昨天重装了一遍 ...…

查看全部问答>

关于uboot里norflash的驱动问题

U-Boot 1.1.1 (Development build, svnversion: u-boot:已导出 , exec:已导出 ) (Build time: Jan 18 2010 - 21:30:42) BBBdr_hertz=333000000, ddr_ref_hertz=50000000, ddr_config_valid_mask=1 BBBdr_interface_mask=1, ddr_config_valid_mask ...…

查看全部问答>

关于扫描无线网络channel的问题

利用WINCE开发一个无线网络监控程序,希望能扫描得到当前可用的无线资源(这已实现)。 有个问题是,能不能指定扫描的channel呢?就是说,假设有11个CHANNEL可以用,但是我在扫描的时候只想扫描1、3、6号channel,如何在程序中设置呢? 哪位大侠能 ...…

查看全部问答>

SOPC工程顶层例化问题

用SOPC的IP核生成了一个工程文件(暂时把这个顶层叫vip吧)之后,想要将vip模块作为我一个子模块例化一下。可是这样做了之后编译不能通过,报错如下:Error (10613): VHDL syntax error at video_conver_top.vhd(153): experienced unexpected end- ...…

查看全部问答>

我的LED应急灯制作过程(5)-我制作的第二套LED应急灯

第一套应急灯我做的是3W功率的LED,这个是我独立设计并制作完成的。第二套LED应急灯是灰太狼设计的、我组装的采用MAX16804的应急灯。再次谢谢SOSO 琳子姐姐,还有灰太狼!有机会请你们吃饭!!  下面也是图片展示制作过程:…

查看全部问答>

C的一些问题

 1、C语言缺少显式的字符串数据类型,这是一个优点还是一个缺点?2、具有空函数可以作为存根使用,你如何对这类函数进行修改,使其更加有用?3、如果一个值的类型无法简单地通过观察它的位模式来判断,那么机器是如何知道应该怎样对这个值进行 ...…

查看全部问答>

[诚寻] DSP开发 DSP测试 RF测试工程师 上海 15-22万 非诚勿扰

请自荐或是推荐的朋友发送简历到以下邮箱: Jerome.zhang@focu-search.com   QQ:727190736 申请职位请务必在邮件中注明所申请职位的名称、目前的薪酬大致情况和期望、您目前的工作地点。 谢谢! 统招本科 硕士优先(本科3年左右 硕士2 ...…

查看全部问答>

脉冲序列

如何产生这样的脉冲组,它有高电平时间,低电平时间,脉冲组间隔,循环次数。这组脉冲的四个量均为上位机输入,且多个这样的脉冲组串联,间隔有可能为0。该时序为产品工作时序,实际最长时间为8000秒(单脉冲)整个脉冲组有可能到10000小时。Fpga新手,望回复 ...…

查看全部问答>

STM32F4双ADC采样ADC2无数据

最近在调STM32F439的板子,想用双ADC同时采样,发现ADC1数据正常,ADC2无数据,求大神指点。 下边是程序代码: uint16_t ADC_Value[8]; #define ADC1_DR_ADDR  0x4001204C      //ADC1_DR 地址 static void Init ...…

查看全部问答>

基于串口的数字万用表创意进度帖+RL78G14开发环境的安装

有朋友问我怎么安装开发环境,过程中遇到了一些问题,特别是注册那个激活码。 我这里重新搞一遍,与大家分享一下经验 如图,建议把所带光盘使用UltraISO软碟通将光盘制作成ISO文件,然后加载到虚拟光驱,这样运行速度更快.安装更省时. 然后运行根目 ...…

查看全部问答>