基本信息
文件名称:Texas Instruments 系列:Tiva C 系列 (基于 TM4C123)_8.外设接口编程技术.docx
文件大小:25.21 KB
总页数:31 页
更新时间:2025-06-19
总字数:约1.57万字
文档摘要

PAGE1

PAGE1

8.外设接口编程技术

8.1GPIO(通用输入输出)编程

GPIO(通用输入输出)是单片机中最基本的外设接口之一,用于控制外部设备的开关状态或读取外部设备的状态。在TivaC系列(基于TM4C123)中,GPIO接口的设计非常灵活,可以配置为输入、输出、中断等多种模式。

8.1.1GPIO的基本配置

在使用GPIO之前,需要进行一些基本的配置,包括启用GPIO端口时钟、配置GPIO端口的方向(输入或输出)以及初始化GPIO引脚。

#includeti/devices/tm4c123/driverlib/sysctl.h

#includeti/devices/tm4c123/driverlib/gpio.h

//启用GPIO端口时钟

voidGPIO_Init(void){

//启用端口F的时钟

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);

//等待端口F的时钟启用

while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF)){}

//配置PF0为输出

GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_0);

}

8.1.2GPIO的输出控制

配置完GPIO引脚后,可以通过GPIOPinWrite函数来控制引脚的输出状态。

voidGPIO_OutputExample(void){

//初始化GPIO

GPIO_Init();

//使PF0高电平

GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,GPIO_PIN_0);

//延时一段时间

SysCtlDelay(SysCtlClockGet()/3);//延时1秒

//使PF0低电平

GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0);

}

8.1.3GPIO的输入读取

读取GPIO引脚的状态可以通过GPIOPinRead函数实现。

uint8_tGPIO_InputExample(void){

uint8_tinput_state;

//初始化GPIO

GPIO_Init();

//配置PF1为输入

GPIOPinTypeGPIOInput(GPIO_PORTF_BASE,GPIO_PIN_1);

//读取PF1的状态

input_state=GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_1);

returninput_state;

}

8.1.4GPIO中断配置

GPIO可以配置为中断输入,当引脚状态发生变化时触发中断。中断配置需要设置中断触发类型、使能中断以及编写中断服务例程。

#includeti/devices/tm4c123/driverlib/interrupt.h

//中断服务例程

voidGPIOPortFIntHandler(void){

uint32_tstatus;

//获取中断状态

status=GPIOIntStatus(GPIO_PORTF_BASE,false);

//清除中断标志

GPIOIntClear(GPIO_PORTF_BASE,status);

//处理中断

if(statusGPIO_PIN_1){

//PF1引脚触发中断

GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,GPIO_PIN_0);//使PF0高电平

}

}

voidGPIO_InterruptExample(void){

//初始化GPIO

GPIO_Init();

//配置PF1为输入

GPIOPinTypeGPIOInput(GPIO_PORTF_BASE,GPIO_PIN_1);

//设置PF1的中断触发类型为下降沿触发

GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_FALLING_EDGE);