关于UART 发送的问题

[复制链接]
 楼主| 自民 发表于 2014-7-9 17:05 | 显示全部楼层 |阅读模式
  • 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)); //等待发送完成





dirtwillfly 发表于 2014-7-9 21:50 | 显示全部楼层
ROM_UARTSpaceAvail(UART2_BASE)    若发送FIFO里有可用空间
ROM_UARTBusy(UART2_BASE)  等待发送完成
则两个函数式不一样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

195

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

47

主题

195

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部