|
本帖最后由 cl17726 于 2013-12-24 11:03 编辑
串口FIFO是怎么用的啊.我写了个测试,还没用中断,发现只能一直打印H.我是用Tiva Launchpad
单步跟入:UARTCharPutNonBlocking(UART0_BASE,*Buf++);
第二次跟入:
- void UART0_Init(void){
- SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
- SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
- GPIOPinConfigure(GPIO_PA0_U0RX);
- GPIOPinConfigure(GPIO_PA1_U0TX);
- GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
- UARTConfigSetExpClk(UART0_BASE, SysCtlClockGet(),115200,(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
- UARTFIFOEnable(UART0_BASE);
- UARTFIFOLevelSet(UART0_BASE,UART_FIFO_TX7_8,UART_FIFO_RX7_8);
- UARTEnable(UART0_BASE);
- }
- void UART0_SendStr(const char *Buf){
- unsigned char len;
- len = strlen(Buf);
- while(len--){
- if(UARTSpaceAvail(UART0_BASE)){
- UARTCharPutNonBlocking(UART0_BASE,*Buf++);
- }
- }while(!UARTSpaceAvail(UART0_BASE));
- }
- int main(void)
- {
- SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
- UART0_Init();
- while(1)
- {
- UART0_SendStr("Hello World\n");
- }
- }
复制代码
|
|