你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F1 GPIO工作原理

[复制链接]
STMCU小助手 发布时间:2021-11-26 18:00

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL2tyMmtLNThDemU0UGx6bFUucG5nIXRodW1ibmFpbA.png


STM32F103ZET6(144脚芯片)

7组IO,每组16个,一共112个IO口。

GPIOA,GPIOB…GPIOG

GPIOAA0~PA15(A,B,C,D,E,F,G均是16个IO口)

FT表示可以容忍5V

一、4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入

1.GPIO的输入工作模式1—输入浮空模式

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mLzJRMkhacVhKb0hRQ3hEUHQucG5nIXRodW1ibmFpbA.png


2.GPIO的输入工作模式2—输入上拉模式

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mLzZWNWtYY1VtSjEwTmRiRm4ucG5nIXRodW1ibmFpbA.png


3.GPIO的输入工作模式3—输入下拉模式

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL2VQbVR4NGE1NTBZaEtkcUkucG5nIXRodW1ibmFpbA.png


4.GPIO的输入工作模式4—模拟模式

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL1R1V2NzUDV4VzRzamJFQXQucG5nIXRodW1ibmFpbA.png


二、4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能

1.GPIO的输出工作模式1—开漏输出模式
2.GPIO的输出工作模式2—开漏复用输出模式

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL2Y2UWIxMUV3cnBVTElUaEEucG5nIXRodW1ibmFpbA.png


3.GPIO的输出工作模式3—推挽输出模式

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL2pGMUJyVTdSTWY4MGVNV3gucG5nIXRodW1ibmFpbA.png


4.GPIO的输出工作模式4—推挽复用输出模式



三、3种最大翻转速度:2MHZ,10MHZ,50MHZ

四、GPIO工作方式

推挽输出:可以输出强高低电平,连接数字器件 。

开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。

每组GPIO端口的寄存器包括:

两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH)

两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR)

一个32位置位/ 复位寄存器(GPIOx_BSRR)

一个16位复位寄存器(GPIOx_BRR)

一个32位锁定寄存器(GPIOx_LCKR)

每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。

每组IO口含下面7个寄存器。也就是7个寄存器,一共可以控制一组GPIO的16个IO口。

GPIOx_CRL :端口配置低寄存器

GPIOx_CRH:端口配置高寄存器

GPIOx_IDR:端口输入寄存器

GPIOx_ODR:端口输出寄存器

GPIOx_BSRR:端口位设置/清除寄存器

GPIOx_BRR :端口位清除寄存器

GPIOx_LCKR:端口配置锁存寄存器

1.端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH)

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL1BhT0JSTGNqVE1vRkQ5c3oucG5nIXRodW1ibmFpbA.png


2.端口输入数据寄存器(GPIOx_IDR)

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL3BxcG1UTjV5cUowYVd3TEEucG5nIXRodW1ibmFpbA.png


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



3.通过设置ODR控制端口位为上拉还是下拉输出模式

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL0VyV1RRYTFtM3NNVHR3TXEucG5nIXRodW1ibmFpbA.png


ODRx设置为0就是下列输入,ODRx设置为1就是上拉输入。

4.端口位设置/清除寄存器(GPIOx_BSRR)

aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL3htWllNTVAzbVVJd2JTU04ucG5nIXRodW1ibmFpbA.png


端口位清除寄存器(GPIOx_BRR)

通常就采用BSRR的低16位和BRR的低16位,因为BRR的低16位与BSRR的高16位作用类似。

5.端口复用功能: STM32的大部分端口都具有复用功能。 所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚。

6.端口重映射功能:就是可以把某些功能引脚映射到其他引脚。比如串口1默认引脚是PA9,PA10可以通过配置重映射映射到PB6,PB7。

和51单片机相比,32所有的IO口都可以作为中断输入。


aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL2Y3UjRKRWhXMVM4U0M5NVQucG5nIXRodW1ibmFpbA.png
aHR0cHM6Ly91cGxvYWRlci5zaGltby5pbS9mL3N6SUlKOGR2UldRWmJZTmEucG5nIXRodW1ibmFpbA.png
收藏 评论1 发布时间:2021-11-26 18:00

举报

1个回答
tianqi911 回答时间:2024-5-11 11:06:41

非常清楚 感谢。

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版