打印
[Kinetis]

K10 uart0中断FIFO中接收数据顺序错乱?

[复制链接]
1845|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
winamp123|  楼主 | 2014-5-29 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
K10  的两个串口,一样的设置,FIFO为8,uart1中断接收正常;uart0却始终不正确,FIFO改成单个字节接收后,uart0能正常中断接收。
FIFO设置如下:
    uartch->PFIFO |= UART_PFIFO_RXFE_MASK;
    uartch->RWFIFO = 8;
    uartch->CFIFO |= (UART_CFIFO_RXFLUSH_MASK | UART_CFIFO_TXFLUSH_MASK);

附上中断处理函数,依靠检测S1  RDRF,IDLE中断来完成收发。接收时能进入中断,并且在UART1上是正常的。就不知在UART0上就不正常了?

void UART0_RX_TX_IRQHandler(void)
{   
    /* Check receiver */
    if (UART0->S1 & UART_S1_RDRF_MASK)
    {
        count = UART0->RCFIFO;
        for (i = 0; i < count; i++)
        {
            data_byte = UART0->D;                     
            Put(&Receive_Fifo, data_byte);            
        }
    }

    /* Check receiving idle */
    if (UART0->S1 & UART_S1_IDLE_MASK)
    {
        count = UART0->RCFIFO;
        if (count == 0)
        {
            data_byte = UART0->D;
            UART0->CFIFO |= UART_CFIFO_RXFLUSH_MASK;
        }
        else
        {
            for (i = 0; i < count; i++)
            {
               data_byte = UART0->D;
               Put(&Receive_Fifo, data_byte);  
            }
        }   
    }  
}

相关帖子

沙发
FSL_TICS_A| | 2014-5-29 15:56 | 只看该作者
你好,楼主!
这么奇怪啊,UART0与UART1模块在寄存器和时钟源都是一致的,不应该会出现不能的现象,请问UART0出现错误的具体表现是什么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

57

帖子

0

粉丝