STM32F4工程--IO口--GPIO工作模式详解

STM32F4工程--IO口--GPIO工作模式详解

  ----芯片:STM32F429IGT6                       

  ----参考资料:正点原子视频


目录

一、基础知识

二、GPIO的8种工作模式

三、补充


一、基础知识

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处于浮空状态


(文章为观看原子STM32视频后的笔记及总结,主要用于个人学习巩固知识)

(新手写文章,很多地方写的不够完善,还希望大家能够指点)(侵删)

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值