嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc

嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc

ID:50946700

大小:350.00 KB

页数:9页

时间:2020-03-16

嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc_第1页
嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc_第2页
嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc_第3页
嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc_第4页
嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc_第5页
资源描述:

《嵌入式学习GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、GPIO的接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)及其应用设计(用户模块、系统模块)一、接口逻辑框架(硬件逻辑、接口功能、硬件抽象层)1、硬件逻辑GPIO引脚有72个或38个,下图是“一位GPIO端口”的基本结构(“一位GPIO端口”对应“一个GPIO引脚”)。每一个GPIO引脚都可由软件独立配置为“输入悬空、输入上拉、输入下拉、模拟输入、输出开漏、输出推挽、可选功能”等成几种模式。其中,P1.15引脚只能作为输入,在STANDBY模式下作为Wake-up引脚使用。GPIO端口位配置表大部

2、分GPIO引脚都具有复用功能。(缺)2、接口功能GPIO引脚组织为3个通用的I/O端口GPIO_P0、GPIO_P1、GPIO_P2。对于每个通用I/O端口GPIO_Px(x=0、1、2),都有:3个32位的配置寄存器(GPIO_PxC0,GPIO_PxC1,GPIO_PxC2)1个32位的数据寄存器(GPIO_PxD)1个32位的可屏蔽寄存器(GPIO_PxM)但是I/O端口寄存器只能进行32位字访问,不允许进行字节或比特访问,屏蔽寄存器的作用是方便地读、写GPIO寄存器,这样,在读写过程中不

3、会产生IRQ中断。在刚复位之后,可选功能还处于无效状态,I/O端口配置为输入悬空模式(PxC2=0、PxC1=0、PxC0=1)。当被配置为输出时,写入到I/O数据寄存器中的数据就加载到输出锁存器。输出锁存器保持所要输出的值,可以在推挽模式或开漏模式使用输出驱动(当输出0时,只有N-MOS有效)。在每一个APB时钟周期里输入锁存器不活I/O引脚上的数据。读I/O数据寄存器时时读输入错存期还是输出锁存器,是由端口配置决定的。配置为输入模式和输出开漏模式时,读输入锁存器;配置为输出推挽模式时,读输出

4、锁存器。所有的GPIO引脚都有一个内部的弱上拉和弱下拉,在配置的时候可以激活或者不激活它们。3、硬件抽象层1)GPIO的可编程结构(功能寄存器描述)①GPIO寄存器映射解决IO端口编址的问题,与内存映射相关联(统一的IO端口编址)。②I/O端口配置寄存器(GPIO_PxC0)首址:0xFFFFE400偏移地址:00h复位初值:FFFFFFFFhBit[31:0]都是配置位,下图显示了I/O端口配置寄存器中各位的含义。与上面类似的寄存器有3个(GPIO_PxC0、GPIO_PxC1、GPIO_Px

5、C2),3个寄存器的值共同决定I/O引脚的模式。③I/O端口数据寄存器(GPIO_PxD)首址:0xFFFFE400偏移地址:0Ch复位初值:xxxxxxxxhBit[31:0]:I/O端口数据位对该寄存器的写访问通常是将数据写入输出锁存器。对该寄存器的读访问是从输入锁存器里读取数据,或者在输出和高阻配置的情况下从输出锁存器里获得选择功能配置。下图为数据寄存器的I/O端口配置。④I/O端口屏蔽寄存器(GPIO_PxM)2)GPIO硬件抽象层上一节是对通用输入/输出端口(GPIO)的硬件描述,而这

6、一节主要是在软件层次上对GPIO的硬件抽象层进行介绍。下图为GPIO硬件抽象层结构图。GPIO硬件层硬件抽象层应用层main.c75x.it.c75x_lib.h75_map.h75x_gpio.h75x_gpio.c75x_type.h75x_lib.c75x_conf.h在75x_conf.h中定义GPIO之后GPIO才能被启用,如下#define_GPIO若不需要GPIO则如下定义//#define_GPIO在用户的主程序文件main.c中引入75x_lib.h,该头文件声明了所有外设的头

7、文件。若在75x_conf.h中定义了GPIO则在75x_lib.h的定义则可引入。75x_mrcc.h头文件,定义如下#ifdef_GPIO#include"75x_gpio.h"#endif/*_GPIO*/GPIO的寄存器结构GPIO_TypeDef在75x_map.h文件中定义如下typedefstruct{vu32PC0;vu32PC1;vu32PC2;vu32PD;vu32PM;}GPIO_TypeDef;typedefstruct{vu32REMAP0R;vu32REMAP1R;}

8、GPIO_REMAP_TypeDef;下面是对这些寄存器进行说明。PC0:端口0配置寄存器PC1:端口1配置寄存器PC2:端口2配置寄存器PD:数据寄存器PM:端口屏蔽寄存器REMAP0R:I/O映射寄存器0REMAP1R:I/O映射寄存器1当DEBUG模式被使用时,GPIO的指针在75x_lib.c里声明,声明的语句如下:#ifdef_GPIO0GPIO0=(GPIO_TypeDef*)GPIO0_BASE;#endif/*_GPIO0*/#ifdef_GPIOREMAPGPIOREMAP=(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。