今天我们介绍tm4c板的uart功能,关于uart的基本知识和相关资料,网上都有详细的帖子,我们主要来说明如何在板子上使用。
主要使用的函数有以下几个:
SysCtlClockFreqSet();//设置系统的晶振频率
SysCtlPeripheralEnable();//使能板子的相应外设
IntMasterEnable();//开启进程中断
GPIOPinConfigure();
GPIOPinTypeUART();//将引脚设置为uart模式
下面的这个函数可以用来配置板子的uart功能:
void uartconfigure(){
g_ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480),120000000);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);//uart0对应的外设引脚为PA0,PA1
//设置PA0,PA1为uart引脚
GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
//设置波特率115200,数据位 8 ,校验位 None ,停止位 1 ,8——N——1模式
UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//开启uart0中断
IntEnable(INT_UART0);
UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT);
}
我们在使用uart向串口发送数据接收数据时,一般可以使用以下几个函数
UARTprintf(); //向串口打印字符串,类似C语言
UARTgets();
UARTCharPutNonBlocking();//向串口发送字符
UARTChargetNonBlocking();
使用上面前两个函数需要#include "utils/uartstdio.h"
,并且将uartstdio.c
复制到main()
同级目录下
在实际中,如果用上面的配置方式,UARTprintf()
函数不能正常使用,在上面配置函数最后加入
UARTStdioConfig(0, 115200, g_ui32SysClock);
则可以正常使用,最后查看UARTStdioConfig()
函数的声明,发现其内部是由UARTConfigSetExpClk()
函数实现的。