TI中文支持网
TI专业的中文技术问题搜集分享网站

关于UART 发送的问题

ROM_UARTSpaceAvail(UART2_BASE)与ROM_UARTBusy(UART2_BASE)的作用是否一样!

为什么发送连续数据(超过16个)会丢数据用以下程序

while(ui32Count–)

{

    ROM_UARTCharPutNonBlocking(UART2_BASE, *pui8Buffer++);

    while(UARTBusy(UART2_BASE));     //等待发送完成

  }

 

要改为

while(ui32Count)

{

    if(ROM_UARTSpaceAvail(UART2_BASE))

    {

        ROM_UARTCharPutNonBlocking(UART2_BASE, *pui8Buffer++);

        ui32Count–;

     }

 }

 while(ROM_UARTBusy(UART2_BASE)); //等待发送完成

Michael Sun:

这两个函数定义和在驱动库的文档里有详细描述。

你也可以试试吧 while(UARTBusy(UART2_BASE)); 放在前面发送的前面。

赞(0)
未经允许不得转载:TI中文支持网 » 关于UART 发送的问题
分享到: 更多 (0)