#include "systemInit.h"
#include "lm3s1138.h"
#include <uart.h>
#include <systick.h>
#include <stdio.h>
// UART初始化
void uartInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_UART2); // 使能UART模块
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOG); // 使能RX/TX所在的GPIO端口
GPIOPinTypeUART(GPIO_PORTG_BASE, // 配置RX/TX所在管脚为
GPIO_PIN_0 | GPIO_PIN_1); // UART收发功能
UARTConfigSet(UART2_BASE, // 配置UART端口
9600, // 波特率:9600
UART_CONFIG_WLEN_8 | // 数据位:8
UART_CONFIG_STOP_ONE | // 停止位:1
UART_CONFIG_PAR_NONE); // 校验位:无
UARTEnable(UART2_BASE); // 使能UART端口
}
// 通过UART发送字符串
void uartPuts(const char *s)
{
while (*s != '\0')
{
UARTCharPut(UART2_BASE, *s++);
}
}
// 主函数(程序入口)
int main(void)
{
int t1, t2;
char s[40];
jtagWait(); // 防止JTAG失效,重要!
clockInit(); // 时钟初始化:晶振,6MHz
uartInit(); // UART初始化
SysTickPeriodSet(256 * 65536); // 设置SysTick初值
SysTickEnable(); // 使能SysTick计数
uartPuts("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n"); // 发送字符串,隐含使用FIFO
t1 = SysTickValueGet(); // 记录填充完FIFO的时刻
while (UART2_FR_R==0x08); // 如果发送忙则等待
t2 = SysTickValueGet(); // 记录真正发送完毕的时刻
sprintf(s, "%d(us)\r\n", (t1 - t2) / 6); // 显示间隔时间,单位:us
uartPuts(s);
for (;;)
{
}
}