开发环境搞明白了,跑串口自然就方便了。
我打开串口例程改了下变成“Hello EEworld",真不错,开发板开始向我们问好:
见下图
下面解析一下,以后的程序我想都按照这个模板写下去啦:
- // Enable lazy stacking for interrupt handlers. This allows floating-point
- // instructions to be used within interrupt handlers, but at the expense of
- // extra stack usage.
- //
- ROM_FPULazyStackingEnable();
- //
- // Set the clocking to run directly from the crystal.
- //
- ROM_SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |
- SYSCTL_OSC_MAIN);
复制代码这个ROM打头是调ROM里的API,关键是
ROM_SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |
SYSCTL_OSC_MAIN);
有人会问这个是多少MHZ啊?我测了一下是50MHZ也就是说这个程序跑在50MHZ,还有人会问我们可不可以改变一下。当然可以我试了下,SYSCTL_SYSDIV_4变成 SYSCTL_SYSDIV_2 会超过芯片的频率范围。换成3分频一样地。我想说,大家知道运行在50Mhz就行。以后把这个当模板就行
- //
- // Enable the GPIO port that is used for the on-board LED.
- //
- ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
- //
- // Enable the GPIO pins for the LED (PF2 & PF3).
- //
- ROM_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2);
-
- //
- // Initialize the UART.
- //
- ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
- ROM_GPIOPinConfigure(GPIO_PA0_U0RX);
- ROM_GPIOPinConfigure(GPIO_PA1_U0TX);
- ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
复制代码这部分配置管脚,为USART做好准备。
- UARTStdioInit(0);
- //
- // Hello EEworld
- //
- UARTprintf("Hello, EEworld!\n");
复制代码 UARTStdioInit(0); 这个函数我得说一下,这个函数是设USART0为通讯端口,此函数自动地就把波特率设为115200,呵呵,很爽唉。
那如果改变系统时钟这个函数还会好用么,我想频率变得不大都会好用的。