接口/总线/驱动
GPIO的优点低功耗:GPIO具有更低的功率损耗(大约1µA,µC的工作电流则为100µA)。集成I²C从机接口:GPIO内置I²C从机接口,即使在待机模式下也能够全速工作。小封装:GPIO器件提供最小的封装尺寸—3mm x 3mm QFN!低成本:您不用为没有使用的功能买单!快速上市:不需要编写额外的代码、文档,不需要任何维护工作!灵活的灯光控制:内置多路高分辨率的PWM输出。可预先确定响应时间:缩短或确定外部事件与中断之间的响应时间。更好的灯光效果:匹配的电流输出确保均匀的显示亮度。布线简单:仅需使用2条I²C总线或3条SPI总线。
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口都可以作为中断输入。
全部0条评论
快来发表一下你的评论吧 !