GPIO工作原理 及 寄存器应用
来源:互联网 发布:新侠客行 知乎 编辑:程序博客网 时间:2024/05/01 02:16
一.基本结构与工作方式
STM32F407ZGT6芯片有144个引脚,7组IO口(标号范围:GPIOA,GPIOB......GPIOG),每组IO口有16个IO(范围:GPIOA.0......GPIOA.15),一共有16*7=112个IO。
IO口的复用:STM32的大部分引脚除了作为GPIO使用,同样能作为外设功能引脚(例如串口,定时器)。
工作方式:
1)输入模式:
1.输入浮空
2.输入上拉
3.输入下拉
4.模拟输入(AD转换)
2)输出模式
1.开漏输出
2.开漏复用
3.推挽式输出
4.推挽式复用
TIPS:
推挽输出:
可以输出强高低电平,连接数字器件。
开漏输出:
只可以输出强低电平,高电平靠外部电阻拉高。
3)最大输出速度
1.2MHZ
2.25MHZ
3.50MHZ
4.100MHZ
TIPS:FT(five tolerance):5V容忍:原本输入3.3V电压,可以容忍输入5V电压。
二.寄存器
32位寄存器,范围:0......31。
每组GPIO端口(16个IO口)有10组寄存器:
1)GPIOx_MODER端口模式寄存器 32位配置寄存器2(每个IO口占用位数)
每个IO口占用两位,控制端口x,通过寄存器2x,2x+1两位
00:输入(复位状态)
01:通用输出模式
11:模拟模式
2) GPIOx_OTYPER端口输出类型寄存器 32位配置寄存器 1
每个IO口占用1位,使用低16位,高16位保留不用。
0 :输出推挽(复位状态)
1 : 输出开漏
3) GPIOx_OSPEEDR端口输出速度寄存器 32位配置寄存器 2
00:2MHZ
01:25MHZ
10:50MHZ
11:30pF时为100MHZ,15pF时为80MHZ
4) GPIOX_PUPDR端口上下拉寄存器 32位配置寄存器 2
00:无上拉或下拉
01:上拉
10:下拉
11:保留
5) GPIOx_IDR端口输入数据寄存器 32位数据寄存器1
使用低16位,为只读形式,只能在字模式下访问。
6) GPIOx_ODR端口输出数据寄存器32位数据寄存器 1
使用低16位,
1:高电平
0:低电平
7) GPIOx_BSRR端口置位/复位寄存器 32位数据寄存器(是5和6的综合,比较好用)
BSRR寄存器32位分为低16位BSRRL(配置一组IO口的16个IO口的置位状态:1)
高6位BSRRH(配置一组IO口的16个IO口的置位状态:0).
8) GPIOX_LCKR端口配置锁寄存器
9) GPIOx_AFRL 复位功能寄存器 //9和10用于配置串口(端口复用功能:最大限度地使用IO口资源)
10)GPIOx_AFRH 复位功能寄存器
1.如果配置一个IO口需要2个位,则刚好32位寄存器配置一组IO口,16个IO口。
2.如果配置一个IO口需要1个位,则一般使用低16位,保留高16位。
3.所有IO口都可以作为中断输入。
- GPIO工作原理 及 寄存器应用
- 【stm32f103】GPIO原理以及LED的应用(寄存器版)
- STM32M3_GPIO寄存器&GPIO工作方式
- GPIO的工作原理
- GPIO工作原理(简述)
- 寄存器(CPU工作原理)
- 寄存器(CPU工作原理)
- STM32入门系列-GPIO工作模式及LED电路原理
- NAT工作原理及应用
- GPIO工作原理(stm32F10x)
- STM32的GPIO内部结构及相关寄存器
- STM32的GPIO内部结构及相关寄存器
- 寄存器(cpu工作原理)
- Java规则引擎工作原理及应用
- 比较器工作原理及应用
- Java规则引擎工作原理及应用
- host文件的工作原理及应用
- 电压比较器工作原理及应用
- android - 银联在线支付
- CentOS 配置mono运行环境
- docker 安装mysql
- 整理项目(一)——安防
- POJ2502 subway(dijkstra以最短时间代替最短路)
- GPIO工作原理 及 寄存器应用
- NOIP提高组 同余
- Camera Vision - video surveillance on C#
- 好美的一段话
- JAVA流程控制语句 循环 while for
- 前端路由与后端路由
- C++基础4:计算一字符串中出现频率最大的元素
- SpringMVC启动后初始化
- 9.2-9.5学习列表