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