沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第05章 通用输入输出接口GPIO

第5章通用输入/输出接口GPIO
第5章 通用输入/输出 接口GPIO

本章讲述了通用输入/输出接口GPIO,包括通用输入/输出接口概述、GPIO的功能、GPIO常用库函数、GPIO使用流程、GPIO输出应用实例和GPIO输入应用实例
本章讲述了通用输入/输出接口GPIO,包括通用输入/ 输出接口概述、GPIO的功能、GPIO常用库函数、GPIO 使 用流程、GPIO输出应用实例和GPIO输入应用实例

5.1通用输入/输出接口概述几乎在所有的嵌入式系统应用中,都涉及开关量的输入和输出功能,例如状态指示、报警输出、继电器闭合和断开、按钮状态读入、开关量报警信息的输入等。这些开关量的输入和控制输出都可以通过通用输入/输出接口实现STM32F103VET6有80根多功能双向能承受5V电压的快速/O口线。每16根口线分为一组,分别为PA、PB、PC、PD、PE。每个GPIO端口有两个32位配置寄存器(GPIOxCRL,GPIOxCRH),两个32位数据寄存器(GPIOxIDR和GPIOxODR),一个32位置位/复位寄存器(GPIOxBSRR),一个16位复位寄存器(GPIOxBRR)和一个32位锁定寄存器(GPIOxLCKR)
几乎在所有的嵌入式系统应用中,都涉及开关量的输入 和输出功能,例如状态指示、报警输出、继电器闭合和断开 、按钮状态读入、开关量报警信息的输入等。这些开关量的 输入和控制输出都可以通过通用输入/输出接口实现。 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)。 5.1 通用输入/输出接口概述

GPIO端口的每个位都可以由软件分别配置成以下模式1)输入浮空:浮空(floating)就是逻辑器件的输入引脚既不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。2)输入上拉:上拉就是把电压拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平。电阻同时起限流作用。弱强只是上拉电阻的阻值不同,没有什么严格区分。3)输入下拉:就是把电压拉低,拉到GND。与上拉原理相似。4)模拟输入:模拟输入是指传统方式的模拟量输入。数字输入是输入数字信号,即0和1的二进制数字信号
GPIO端口的每个位都可以由软件分别配置成以下模式。 1)输入浮空:浮空(floating)就是逻辑器件的输入引 脚既不接高电平,也不接低电平。由于逻辑器件的内部结构 ,当它输入引脚悬空时,相当于该引脚接了高电平。一般实 际运用时,引脚不建议悬空,易受干扰。 2)输入上拉:上拉就是把电压拉高,比如拉到Vcc。上 拉就是将不确定的信号通过一个电阻嵌位在高电平。电阻同 时起限流作用。弱强只是上拉电阻的阻值不同,没有什么严 格区分。 3)输入下拉:就是把电压拉低,拉到GND。与上拉原 理相似。 4)模拟输入:模拟输入是指传统方式的模拟量输入。数 字输入是输入数字信号,即0和1的二进制数字信号

5)开漏输出:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。6)推挽式输出:可以输出高低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。7)推挽式复用功能。8)开漏复用功能。复用功能可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用1/O口使用)。每个1/O可以自由编程,而1/O口寄存器必须按32位字访问(不允许半字或字节访问)。GPIOxBSRR和GPIOxBRR寄存器允许对任何GPIO寄存器的读/更改的独立访问,这样,在读和更改访问之间产生中断(IRQ)时不会发生危险。一个I/O口的基本结构如图5-1所示0
5)开漏输出:输出端相当于三极管的集电极。要得到高 电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸 收电流的能力相对强(一般20mA以内)。 6)推挽式输出:可以输出高低电平,连接数字器件;推 挽结构一般是指两个三极管分别受两个互补信号的控制,总 是在一个三极管导通的时候另一个截止。 7)推挽式复用功能。 8)开漏复用功能。 复用功能可以理解为GPIO口被用作第二功能时的配置情 况(即并非作为通用I/O口使用)。每个I/O可以自由编程,而 I/O口寄存器必须按32位字访问(不允许半字或字节访问)。 GPIOx_BSRR和GPIOxBRR寄存器允许对任何GPIO寄存器 的读/更改的独立访问,这样,在读和更改访问之间产生中断 (IRQ)时不会发生危险。一个I/O口的基本结构如图5-1所示

/VDD模拟输入1至片上外设-开/关√1复用功能输入1开/关/1读出VDD_FTTTL施密本保护二极管开/关特触发器输入驱动器口I/O引脚写入Vss器VDD输出驱动器保护二极管TqLP-MOS输出Y-Vss控制HN-MOS1读/写Vss推挽、开漏复用功能输出或关闭来自片上外设图5-1一个//O口位的基本结构VO口位的基本结构包括以下几部分
输入数据寄存器 位设置/清除寄存器 输出数据寄存器 模拟输入 复用功能输入 至片上外设 读出 写入 读/写 输出 控制 复用功能输出 来自片上外设 VDD 开/关 开/关 开/关 TTL施密 特触发器 VDD VSS VSS VDD_FT I/O引脚 VSS P-MOS N-MOS 推挽、开漏 或关闭 保护二极管 输入驱动器 输出驱动器 保护二极管 图5-1 一个I/O口位的基本结构 I/O口位的基本结构包括以下几部分

5.1.1输入通道包括输入数据寄存器和输入驱动器。在接近/O引脚处连接了两只保护二极管,假设保护二极管的导通电压降为Vd,则输入到输入驱动器的信号电压范围被钳位在:Vss-Vd<Vin<Vdd+Vd由于Vd的导通压降不会超过0.7V,若电源电压Vdd为3.3V,则输入到输入驱动器的信号最低不会低于一0.7V,最高不会高于4V,起到了保护作用
包括输入数据寄存器和输入驱动器。在接近I/O引脚处连 接了两只保护二极管,假设保护二极管的导通电压降为Vd, 则输入到输入驱动器的信号电压范围被钳位在: Vss-Vd<Vin<Vdd+Vd 由于Vd的导通压降不会超过0.7V,若电源电压Vdd为 3.3V,则输入到输入驱动器的信号最低不会低于-0.7V,最 高不会高于4V,起到了保护作用。 5.1.1输入通道

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

5.2 GPIO的功能5.2.1普通/O功能复位期间和刚复位后,复用功能未开启,1/O口被配置成浮空输入模式。复位后,JTAG引脚被置于输入上拉或下拉模式。1)PA13:JTMS置于上拉模式。2)PA14:JTCK置于下拉模式3)PA15:JTDI置于上拉模式。4)PB4:JNTRST置于上拉模式当作为输出配置时,写到输出数据寄存器(GPIOxODR)上的值输出到相应的I/O引脚。可以以推挽模式或开漏模式(当输出O时,只有N-MOS被打开)使用输出驱动器
5.2 GPIO的功能 复位期间和刚复位后,复用功能未开启,I/O口被配置成 浮空输入模式。 复位后,JTAG引脚被置于输入上拉或下拉模式。 1)PA13:JTMS置于上拉模式。 2)PA14:JTCK置于下拉模式。 3)PA15:JTDI置于上拉模式。 4)PB4:JNTRST置于上拉模式。 当作为输出配置时,写到输出数据寄存器( GPIOx_ODR)上的值输出到相应的I/O引脚。可以以推挽模 式或开漏模式(当输出0时,只有N-MOS被打开)使用输出 驱动器。 5.2.1普通I/O功能

输入数据寄存器(GPIOxIDR)在每个APB2时钟周期捕捉I/O引脚上的数据。所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活也可以被断开
输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期 捕捉I/O引脚上的数据。 所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为 输入时,它们可以被激活也可以被断开
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第04章 中断系统.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 STM32微控制器的开发平台.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 嵌入式开发环境的搭建.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第02章 STM32微控制器.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第01章 绪论.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第10章 DMA控制器.ppt
- 《单片机原理与接口技术应用》课程教学资源(文献资料)普中F103-Z400开发板原理图.pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)从ARM9到A15手机处理器架构进化历程.doc
- 《单片机原理与接口技术应用》课程教学资源(文献资料)AN2606 应用笔记(STM32微控制器系统存储器自举模式).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)STM32F10xxx Cortex-M3编程手册(PM0056 Programming manual STM32F10xxx/20xxx/21xxx/L1xxxx Cortex®-M3 programming manual).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)Cortex-M3权威指南中文.pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)Cortex-M3技术参考手册(共十七章,含附录).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)STM32F103xCDE数据手册(英文,第5版).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)STM32F103xCDE数据手册(中文,第5版).pdf
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学大纲 Principle and interface technology of single chip microcomputer.docx
- 沈阳师范大学:《单片机原理与接口技术应用》课程授课教案(完整讲义,共三十八讲).docx
- 沈阳师范大学:《计算机控制技术》课程教学课件(讲稿)第4章 常规及复杂控制技术.pdf
- 沈阳师范大学:《计算机控制技术》课程授课教案(共九章,主讲教师:申海).pdf
- 沈阳师范大学:《计算机控制技术》课程教学大纲 Computer Control Technology.pdf
- 沈阳师范大学:《高级语言程序设计Python》课程授课教案(讲义,授课教师:刘立群).pdf
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第06章 定时器.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第07章 模数转换器(ADC).ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第08章 USART串行通信.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第09章 SPI与I2C串行总线.ppt
- 黄河水利职业技术大学:《电商网站建设与优化》课程思政教案(教学设计)PHP动态网站开发.pdf
- 江苏大学:RISC-V CPU设计实验(讲义).pdf
- 《计算机导论》课程教学资源(授课教案,教材讲义,共六章).pdf
- 长春大学:旅游学院:《Visual FoxPro程序设计》课程教学资源(授课教案,共七章).pdf
- 《程序设计》课程教学资源(书籍文献)Google开源项目风格指南(中文版).pdf
- 《程序设计》课程教学资源(实验指导)C++语言习题集(南京航空航天大学:陈哲).pdf
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)01 计算机和程序.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)02 常量和变量.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)03 运算符和表达式.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)04 控制流.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)05 函数.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)06 数组.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)07 记录类型.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)08 文件.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)09 编译预处理和多文件项目.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 1-C++程序设计基础.ppt
