1、GPIO介绍
在F2812中系统提供了许多通用的I/O引脚,这些引脚绝大多数是多功能复用的引脚,即既可以作为数字I/O口,也可以作为特殊功能口(如SCI、SPI、CAN等)。可以根据设计需要,通过GPIO MUX(复用开关)寄存器来选择配置工作方式。如果引脚工作在通用数字量I/O模式,可以通过方向控制寄存器(GPxDIR)来控制通用I/O的方向,还可以通过量化寄存器(GPxQUAL)对输入信号进行量化限制,从而消除外部噪声干扰。需要注意的的是GPIO
MUX寄存器都需要EALLOW保护。
如果多功能引脚配制成数字量I/O模式,可以通过下列寄存器对相应的引脚进行操作:GPxSET寄存器可以将相应的I/O口置1(高电平);GPxClEAR寄存器可以清除相应的I/O信号(置为低电平);GPxTOGGLE寄存器可以对相应的I/O信号取反;GPxDAT寄存器可以读/写相应的数字量I/O信号,直接控制I/O引脚。
2、GPIO相关寄存器介绍
2.1、GPxMUX寄存器(功能选择寄存器)
每个I/O口都有一个功能选择寄存器,功能选择寄存器主要用于选择I/O工作在特殊功能还是通用数组I/O模式。在复位时,所有GPIO配置成通用数字模式。
1)如果GPxMUX.bit = 0,配置成通用数字I/O功能;
2)如果GPxMUX.bit = 1,配置成特殊外设功能口(如SCI、CAN);
I/O的输入功能和外设的输入通道总是被使能的,输出通道是通用数组I/O和特殊外设复用的。如果引脚配置成通用数组I/O功能,相应的外设功能将被禁止。
2.2、GPxDIR(方向控制寄存器)
每个I/O口都有数据方向控制寄存器,数据方向控制寄存器用于设置通用数字I/O为输入还是输出口,在复位时,引脚的默认状态为输入状态。
1)如果GPxDIR.bit = 0,引脚设置为通用数字量输入;
2)如果GPxDIR.bit = 1,引脚设置为通用数字量输出;
复位时,GPxMUX和GPxDIR默认值都为0,所以在复位时,引脚的默认状态为数字I/O输入。
2.3、GPxDAT寄存器(数据寄存器)
每个I/O口都有一个数据寄存器,数据寄存器是可读可写寄存器。
1)I/O设置为输出功能时,如果GPxDAT.bit = 0,那么操作将会使相应的引脚拉低;
2)I/O口设置为输入功能时,如果GPxDAT.bit = 0,反映相应的引脚状态为低电平;
3)I/O口设置为输出功能时,如果GPxDAT.bit = 1,那么操作将会使相应的引脚拉高;
4)I/O口设置为输入功能时,如果GPxDAT.bit = 1,反映相应的引脚状态为高电平。
需要说明的是,当用户试图改变一个数字I/O的状态时,不要改变另一个I/O的引脚状态。
2.4、GOxSET寄存器(置位寄存器)
每个I/O口都有一个置位寄存器,置位寄存器是只写寄存器,任何读操作都返回0,如果相应的引脚配置成数据量输出,写1后相应的引脚会置高,写0时没有反映。
1)如果GPxSET.bit = 0,没有影响;
2)引脚设置为输出时,如果GPxSET.bit = 1,那么操作将会使引脚置高。
2.5、GPxCLEAR寄存器(清除寄存器)
每个I/O口都有一个清除寄存器,清除寄存器是只写寄存器,任何读操作都返回0。
1)如果GPxCLEAR.bit = 0,没有影响;
2)引脚设置为输出时,如果GPxCLEAR.bit = 1,将相应的引脚置成低电平。
2.6、GPxTOGGLE寄存器(取反触发寄存器)
每个I/O口都有一个取反触发寄存器,该寄存器是只写寄存器,任何读操作都返回0。
1)如果GPxTOGGLE.bit = 0,没有影响;
2)引脚设置为输出时,如果GPxTOGGLE.bit = 1,那么操作将使相应的引脚取反。