gpio工作原理

接口/总线/驱动

1116人已加入

描述

  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口都可以作为中断输入。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分