《STM32嵌入式单片机原理与应用》 课件 李正军 第5、6章 通用输入输出接口GPIO、 定时器.pptx

《STM32嵌入式单片机原理与应用》 课件 李正军 第5、6章 通用输入输出接口GPIO、 定时器.pptx

  1. 1、本文档共163页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第5章通用输入/输出

接口GPIO;本章讲述了通用输入/输出接口GPIO,包括通用输入/输出接口概述、GPIO的功能、GPIO常用库函数、GPIO使用流程、GPIO输出应用实例和GPIO输入应用实例。;几乎在所有的嵌入式系统应用中,都涉及开关量的输入和输出功能,例如状态指示、报警输出、继电器闭合和断开、按钮状态读入、开关量报警信息的输入等。这些开关量的输入和控制输出都可以通过通用输入/输出接口实现。

STM32F103VET6有80根多功能双向能承受5V电压的快速I/O口线。每16根口线分为一组,分别为PA、PB、PC、PD、PE。每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。

;GPIO端口的每个位都可以由软件分别配置成以下模式。

1)输入浮空:浮空(floating)就是逻辑器件的输入引脚既不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。

2)输入上拉:上拉就是把电压拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平。电阻同时起限流作用。弱强只是上拉电阻的阻值不同,没有什么严格区分。

3)输入下拉:就是把电压拉低,拉到GND。与上拉原理相似。

4)模拟输入:模拟输入是指传统方式的模拟量输入。数字输入是输入数字信号,即0和1的二进制数字信号。

;5)开漏输出:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。

6)推挽式输出:可以输出高低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。

7)推挽式复用功能。

8)开漏复用功能。

复用功能可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用I/O口使用)。每个I/O可以自由编程,而I/O口寄存器必须按32位字访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOxBRR寄存器允许??任何GPIO寄存器的读/更改的独立访问,这样,在读和更改访问之间产生中断(IRQ)时不会发生危险。一个I/O口的基本结构如图5-1所示。

;图5-1一个I/O口位的基本结构;包括输入数据寄存器和输入驱动器。在接近I/O引脚处连接了两只保护二极管,假设保护二极管的导通电压降为Vd,则输入到输入驱动器的信号电压范围被钳位在:

Vss-Vd<Vin<Vdd+Vd

由于Vd的导通压降不会超过0.7V,若电源电压Vdd为3.3V,则输入到输入驱动器的信号最低不会低于-0.7V,最高不会高于4V,起到了保护作用。

;输出通道中包括位设置/清除寄存器、输出数据寄存器、输出驱动器。

要输出的开关量数据首先写入到位设置/清除存器,通过读写命令进入输出数据寄存器,然后进入输出驱动的输出控制模块。输出控制模块可以接收开关量的输出和复用功能输出。输出的信号通过由P-MOS和N-MOS场效应管电路输出到引脚。通过软件设置,由P-MOS和N-MOS场效应管电路可以构成推挽方式、开漏方式或者关闭。

;5.2GPIO的功能;输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。

所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活也可以被断开。

;5.2.2单独的位设置或位清除;所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。;5.2.4复用功能(AF);5.2.5软件重新映射I/O复用功能;5.2.6GPIO锁定机制;5.2.7输入配置;图5-2输入浮空/上拉/下拉配置;5.2.8输出配置;6)在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值。

I/O口位的输出配置如图5-3所示。;5.2.9复用功能配置;图5-4复用功能配置;5.2.10模拟输入配置;图5-5高阻抗的模拟输入配置;5.3GPIO常用库函数;主要功能;1.GPIO_Delnit函数

函数名:GPIO_DeInit。

函数原型:voidGPIO_DeInit(GPIO_TypeDef*GPIOx)。

功能描述:将GPIOx外设寄存器重设为它们的默认值。

输入参数:GPIOx:x可以是(A..G)来选择GPIO外设。

输出参数:无。

返回值:无。

例如:

/*重置GPIOA外设寄存

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档