通用输入输出接口GPIO.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通用输入输出接口GPIO Agenda GPIO功能描述 GPIO基本结构 GPIO编程 GPIO应用实例 GPIO功能描述 STM32F10x处理器上共有7个I/O端口:A、B、C、D、E、F、G,每个16个管脚。每个GPIO端口都对应有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH)、两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR)、一个32位置位/复位寄存器(GPIOx_BSRR)、一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 注意,I/O寄存器必须以32位字形式访问(不允许半字或字节访问)。 I/O基本结构 通过配置寄存器可很容易配置每组端口来满足不同系统以及设计的需要,端口的每一位都可以设置为:输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、推挽式输出、复用功能(推挽式)、复用功能(开漏式)等模式之一。 在运行程序之前必须对每个用到的管脚功能进行设置,如果某些管脚的复用功能没有使用,可以先将该管脚设置为I/O口。 所有GPIO引脚有一个内部弱上拉和弱下拉电阻,当配置为输入时,它们可以被激活也可以不被激活。 GPIO编程 端口配置寄存器(低位) 端口配置寄存器(低位)(GPIOA_CRL- GPIOG_CRL) 在STM32F10x处理器中大多数的管脚都可以复用,因此必须对每个管脚进行配置。低位配置寄存器用来设置端口低8位的工作模式。端口配置寄存器(低位)如下图所示,各位的含义如下表所列。该寄存器的地址偏移量为00h(所有GPIO控制寄存器的地址都从0x4001 0800处开始),复位值为4444 4444h。 端口配置寄存器(低位) 端口配置寄存器(高位) 端口配置寄存器(高位)(GPIOA_CRH- GPIOG_CRH) 高位配置寄存器用来设置端口高8位的工作模式。端口配置寄存器(高位)如下图所示,各位的含义与低位的完全类似所列。该寄存器的地址偏移量为04h,复位值为4444 4444h。这些寄存器只能以字的形式进行读写。 端口数据输入寄存器 端口数据输入寄存器(GPIOA_IDR- GPIOG_IDR) 如果端口被配置成了输入端口,可以从GPIOx_IDR (x=A..G)相应位读数据,如下图所示,其低16位分别对应每个引脚,高16位保留。该寄存器地址偏移为08h,复位值。这些寄存器只能以字的形式进行读取。 端口数据输出寄存器 端口数据输出寄存器(GPIOA_ODR- GPIOG_ODR) 如果端口被配置成了输出端口,可以向GPIOx_ODR (x=A..G)相应位读或写数据。如下图所示,其低16位分别对应每个引脚,高16位保留。该寄存器的地址偏移为0Ch,复位值为0000 0000h。这些寄存器只能以字的形式进行读写。 端口置位复位寄存器 端口置位复位寄存器(GPIOA_BSRR- GPIOG_ BSRR) 通过置位复位寄存器,可以对端口数据输出寄存器(GPIOA_ODR- GPIOG_ODR)每一位进行置1和复位操作,如下图所示,寄存器各位的定义见下表。该寄存器的地址偏移为10h,复位值为0000 0000h。 端口置位复位寄存器 端口复位寄存器 端口复位寄存器(GPIOA_BRR- GPIOG_ BRR) 通过复位寄存器,可以对端口数据输出寄存器(GPIOA_ODR- GPIOG_ODR)每一位进行复位操作,如下图所示,寄存器各位的定义见下表。该寄存器的地址偏移为14h,复位值为0000 0000h。 端口配置锁定寄存器 端口配置锁定寄存器(GPIOA_LCKR- GPIOG_ LCKR) 端口配置锁定寄存器的每一位用来锁定控制寄存器(CRL, CRH)相应的4位。端口配置锁定寄存器如下图所示,寄存器定义见下表,当执行正确的写序列设置了位LCKK时,该寄存器用来锁定端口位的配置。位[15:0]用于锁定GPIO端口的配置。在规定的写入操作期间,不能改变LCKR[15:0]。当对相应的端口位执行了LOCK序列后,在下次系统复位之前将不能再更改端口位的配置,直到下次复位后解锁。该寄存器的地址偏移为18h,复位值为0000 0000h。 端口配置锁定寄存器 STM32固件库 STM32固件库(Firmware Library)是一个固件函数包,它由程序、数据结构和宏组成,包括了MCU所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例。通过使用本固件函数库,无需深入掌握细节,用户也可以轻松应用每一个外设。因此,使用本固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。 参考《ARM?-based 32-bit MCU STM32F101xx and S

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档