基本信息
文件名称:Texas Instruments 系列:Tiva C 系列 (基于 ARM Cortex-M4)_(7).TivaC系列GPIO编程.docx
文件大小:27.75 KB
总页数:44 页
更新时间:2025-06-24
总字数:约2.28万字
文档摘要

PAGE1

PAGE1

TivaC系列GPIO编程

GPIO概述

通用输入输出(GeneralPurposeInputOutput,GPIO)是嵌入式系统中最常用的外设之一。GPIO允许开发人员直接控制和读取微控制器的引脚状态,从而实现与外部设备的交互。TivaC系列微控制器基于ARMCortex-M4内核,提供了丰富的GPIO资源,可以满足各种应用需求。

GPIO的基本功能

输入功能:读取外部信号,如按键、传感器等。

输出功能:输出控制信号,如控制LED、继电器等。

中断功能:当外部信号发生变化时,触发中断,中断处理函数可以执行相应的操作。

复用功能:某些GPIO引脚可以复用为其他外设的功能,如I2C、UART等。

GPIO的结构

TivaC系列微控制器的GPIO结构包括以下部分:

端口:每个GPIO端口包含多个引脚,通常为8个或16个。

寄存器:每个端口都有多个寄存器,用于配置引脚的功能、方向、状态等。

中断:GPIO可以配置为中断源,当引脚状态发生变化时,触发中断。

GPIO寄存器

GPIO的主要寄存器包括:

DATA寄存器:用于读取或写入引脚的数据。

DIR寄存器:用于配置引脚的方向(输入或输出)。

AFSEL寄存器:用于选择引脚的复用功能。

PCTL寄存器:用于配置复用功能的具体外设。

DEN寄存器:用于使能引脚的数字功能。

AMSEL寄存器:用于配置引脚的模拟功能。

IS寄存器:用于配置中断触发类型(上升沿或下降沿)。

IBE寄存器:用于配置中断触发边沿(双边沿)。

IEV寄存器:用于配置中断触发事件(上升沿或下降沿)。

IM寄存器:用于使能或禁用引脚的中断。

RIS寄存器:用于读取引脚的中断状态。

MIS寄存器:用于读取引脚的未屏蔽中断状态。

ICR寄存器:用于清除引脚的中断状态。

GPIO配置流程

使能GPIO端口的时钟:通过系统控制寄存器使能相应的GPIO端口时钟。

配置引脚方向:通过DIR寄存器配置引脚为输入或输出。

使能数字功能:通过DEN寄存器使能引脚的数字功能。

配置中断:如果需要使用中断,通过IS、IBE、IEV、IM等寄存器配置中断触发类型和使能中断。

读取或写入数据:通过DATA寄存器读取或写入引脚数据。

处理中断:在中断处理函数中处理引脚状态变化。

GPIO配置示例

使能GPIO端口时钟

要使能GPIO端口的时钟,需要通过系统控制寄存器进行配置。以下是一个使能GPIO端口A时钟的示例代码:

#includetm4c123gh6pm.h//TivaC系列头文件

//使能GPIO端口A的时钟

voidGPIOA_Init(void){

//使能GPIO端口A的时钟

SYSCTL_RCGCGPIO_R|=SYSCTL_RCGCGPIO_R0;

//等待时钟稳定

while((SYSCTL_PRGPIO_RSYSCTL_PRGPIO_R0)==0){

//Delayloop

}

}

配置引脚方向

配置引脚方向时,需要通过DIR寄存器设置引脚为输入或输出。以下是一个配置GPIO端口A的引脚0为输出、引脚1为输入的示例代码:

#includetm4c123gh6pm.h//TivaC系列头文件

//配置GPIO端口A的引脚0为输出,引脚1为输入

voidGPIOA_SetPinDirection(void){

//使能GPIO端口A的时钟

SYSCTL_RCGCGPIO_R|=SYSCTL_RCGCGPIO_R0;

//等待时钟稳定

while((SYSCTL_PRGPIO_RSYSCTL_PRGPIO_R0)==0){

//Delayloop

}

//配置引脚0为输出

GPIO_PORTA_DIR_R|=GPIO_PIN_0;

//配置引脚1为输入

GPIO_PORTA_DIR_R=~GPIO_PIN_1;

}

使能数字功能

使能数字功能时,需要通过DEN寄存器设置引脚为数字功能。以下是一个使能GPIO端口A的引脚0和引脚1的数字功能的示例代码:

#includetm4c123gh6pm.h//TivaC系列头文件

//使能GPIO端口A的引脚0和引脚1的数字功能

voidGPIOA_EnableDigital(void){

//使能GPIO端口A的时钟

SYSCTL_RCGCGPIO_R|=SYSCTL_RCGCGPIO_R0