TM4C123G学习笔记(4)——串口UART

实验目标

配置TM4C123G的板载UART串口,使其能用类似printf的函数与输出字符到电脑端。

配置过程

1、TM4C123G的串口结构图

2、引脚映射表

3、开发板原理图

4、配置流程和相关函数

从上述资料可以看到,实验中用到的是UART0,Rx对应PA0,Tx对应PA1

1)使能URAT外设

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);


2)设置输入输入引脚

GPIOPinConfigure(GPIO_PA0_U0RX);//RX=GPIO_PIN_0
GPIOPinConfigure(GPIO_PA1_U0TX);//TX=GPIO_PIN_1
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

3)设置UART时钟频率

设置时钟16MHZ

UARTClockSourceSet(UART0_BASE, UART_CLOCK_PIOSC); 

4)设置波特率 

UARTStdioConfig(0,baud, 16000000);//参数分别是UART编号,波特率,UART时钟频率

5)另一种串口设置方法

3)和4)完成了重定向,类似在STM32中stdio对printf的重定向,有所不同的是,Tiva C重定向后的函数是UARTprintf(),且需要包uartstdio.c文件

3)和4)的一种替代方法,但是在用uartstdio.c对printf重定向时不能用以下方法设置UART

UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet() , baud, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |  UART_CONFIG_PAR_NONE)); 

代码

串口配置头文件

#ifndef __MY_TIVA_UART_H
#define __MY_TIVA_UART_H
#include "sys.h"void Uart_Init(uint32_t baud);#endif

串口配置c文件

#include "my_Tiva_uart.h"void DEBUG_Handler(void)
{uint32_t status=0;
//    uint8_t res=0;UARTIntClear( UART0_BASE , UART_INT_OE );UARTRxErrorClear( UART0_BASE );status=UARTIntStatus(UART0_BASE, true);UARTIntClear(UART0_BASE,status);}void Uart_Init(uint32_t baud)
{//enable the UART peripheralSysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);// set Rx/Tx pins as UART pinsGPIOPinConfigure(GPIO_PA0_U0RX);//RX=GPIO_PIN_0GPIOPinConfigure(GPIO_PA1_U0TX);//TX=GPIO_PIN_1GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);//以下配置可以使用UARTprintf
UARTClockSourceSet(UART0_BASE, UART_CLOCK_PIOSC);	//时钟16MHZUARTStdioConfig(0,baud, 16000000);//参数分别是UART编号,波特率,UART时钟频率
//    UARTIntEnable(UART0_BASE,UART_INT_RX);	UARTIntRegister(UART0_BASE,DEBUG_Handler);UARTFIFODisable(UART0_BASE);
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部