资料目录
TI-MCU专区
TI M4新建一个工程(2)---程序解读
发布日期:2011/11/25
格芯单片机工作室
int main(void) 为用户程序入口,应用程序就是从这开始。
程序清单 1 L1 开启浮点运算单元。
程序清单 1 L2 开启浮点运算中断切换堆栈保护。
程序清单 1 L3 设置系统时钟。
SYSCTL_OSC_MAIN 表示使用主振荡器
SYSCTL_XTAL_16MHZ 表示外部主振荡器的频率为16M
SYSCTL_USE_PLL 表示使用内部PLL倍频
SYSCTL_SYSDIV_4 表示系统时钟为PLL倍频后4分频值。
注意:M4系列PLL倍频后实际为400M,但是之前老的Stellaris 系列MCU PLL倍频后是200M,系统库函数为了兼容性,都是按200M来计算系统时钟的。
SYSCTL_SYSDIV_4 代表200M时钟4分频,即50M。
程序清单 1 L4 使能总中断功能。只要使用中断功能,必须先调用IntMasterEnable()。
程序清单 1 L5 初始化UART配置,波特率为115200。
程序清单 1 L6 测试发送数据到串口。
程序清单 1 L7 从串口接收数据。
程序清单 1 L6 将串口收到的数据会送给串口。
int main(void)
{
//==========================================================================
// 开启浮点单元
//==========================================================================
FPUEnable(); L1
FPULazyStackingEnable(); L2
//
// Set the clocking to run directly from the crystal.
//
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ); L3
//
// Enable processor interrupts.
//
IntMasterEnable(); L4
//==========================================================================
// 初始化UART
//==========================================================================
uart0.id = UART0_BASE;
UARTInital(&uart0); L5
UARTSend(&uart0, strbuf, strlen((char *)strbuf)); L6
while(1)
{
unsigned long len;
// 接受100字节长度的数据
// 超时200毫秒退出
len = UARTRcv(&uart0, tmpbuf, 100, t_ms(200)); L7
if(len)
{
UARTSend(&uart0, tmpbuf, len); L8
}
}
}
程序清单 1