《嵌入式第32章-GPIO和IO复用.ppt》由会员分享,可在线阅读,更多相关《嵌入式第32章-GPIO和IO复用.ppt(27页珍藏版)》请在三一办公上搜索。
1、MC9328MX1部分第32章 GPIO和IO复用,河南机电高等专科学校翟海庆2010年3月,嵌入式系统讲义,GPIO和I/O复用,概述,MC9328MX1有四个GPIO口:端口A、端口B、端口C和端口D。每个端口包含32个引脚,但并不是所有的引脚都可用。可用的引脚包括:端口A:引脚031端口B:引脚831端口C:引脚317,1931 端口D:引脚631如此,A口32根,B口24根,C口28根,D口26根。共计110根。,GPIO和I/O复用,特点,MC9328MX1的GPIO有如下特点:所有的GPIO口都与其它信号复用(IO或外设功能)外设功能分为主要外设功能和可选外设功能可用软件控制端口输
2、入输出方向每一个端口都可以配置成中断输入(中断触发方式可通过软件设置)软件复位能力,GPIO和I/O复用,端口示意图,端口X,引脚i电路示意图,GPIO模块见下页图,GPIO和I/O复用,GPIO模块方框图,端口X,引脚i的GPIO模块方框图,注意:图中的箭头表示数据流入GPIO模块或流出GPIO模块.可参见说明书78-89页.,6,GPIO和I/O复用,每一个GPIO端口有17个寄存器与之关联,共有四组(68个寄存器),在存储器映射中它们的地址是连续的。寄存器组的开始地址被称为基地址,用$BA表示。四个端口的基地址分别如下:GPIO端口A$BA0 x0021C000GPIO端口B$BA0 x
3、0021C100GPIO端口C$BA0 x0021C200GPIO端口D$BA0 x0021C300,编程模型,7,GPIO和I/O复用,编程模型,GPIO模块寄存器存储器映射,8,GPIO和I/O复用,一、数据方向寄存器,编程模型,0引脚i用作输入1引脚i用作输出,9,GPIO和I/O复用,二、输出配置寄存器1,编程模型,10,GPIO和I/O复用,三、输出配置寄存器2,编程模型,11,GPIO和I/O复用,四、输入配置寄存器A1,编程模型,12,GPIO和I/O复用,五、输入配置寄存器A2,编程模型,13,GPIO和I/O复用,六、输入配置寄存器B1,编程模型,14,GPIO和I/O复用,
4、七、输入配置寄存器B2,编程模型,15,GPIO和I/O复用,八、数据寄存器,编程模型,0驱动输出信号为低1驱动输出信号为高,16,GPIO和I/O复用,九、GPIO占用寄存器,编程模型,0引脚用于复用(外设)功能1引脚用于GPIO功能,17,GPIO和I/O复用,十、采样状态寄存器,编程模型,0引脚值为低1引脚值为高,18,GPIO和I/O复用,十一、中断配置寄存器1,编程模型,19,GPIO和I/O复用,十二、中断配置寄存器2,编程模型,20,GPIO和I/O复用,十三、中断屏蔽寄存器,编程模型,0中断被屏蔽1中断未被屏蔽,21,GPIO和I/O复用,十四、中断状态寄存器,编程模型,0中断
5、未产生1中断已经产生,22,GPIO和I/O复用,十五、通用功能寄存器,编程模型,0选择主要引脚功能1选择可选引脚功能,23,GPIO和I/O复用,十六、软件复位寄存器,编程模型,0不起作用1端口X GPIO电路复位,24,GPIO和I/O复用,十七、上拉使能寄存器,编程模型,0如果没有内部或外部驱动,引脚i为三态1如果没有内部或外部驱动,引脚i被上拉到高电平。,25,GPIO和I/O复用,GPIO寄存器功能总结,编程模型,26,GPIO和I/O复用,编程,参见mx1_gpio.h和mx1_gpio.c防止重复包含的宏定义内部函数和外部函数的宏GPIO结构体定义GPIO端口指针定义检查端口引脚
6、的可用性设置端口数据方向(整个端口、某一引脚输入、输出。输出配置(整个端口、某一引脚AIN、BIN、CIN、DR)。输入到A总线(整个端口、某一引脚GPIO、中断、0、1)。输入到B总线(整个端口、某一引脚GPIO、中断、0、1)。设置数据寄存器(整个端口、某一引脚高或低)。选择GPIO或外设功能(整个端口、某一引脚)。获得状态寄存器的值(整个端口、某一引脚)。,27,GPIO和I/O复用,编程,参见mx1_gpio.h和mx1_gpio.c(续)设置中断方式(整个端口、某一引脚)。设置中断屏蔽寄存器(整个端口、某一引脚)。设置中断状态寄存器(整个端口、某一引脚)。设置通用功能寄存器(整个端口、某一引脚)。软件复位寄存器操作。上拉使能寄存器操作。几个有用的宏(在函数中使用)。第一个函数:初始化某一整个端口MX1_GPIO_Init。第二个函数:配置某一引脚MX1_GPIO_Conf。参数为端口、引脚编号、功能、方向、源。,