打印

关于UART 发送的问题

[复制链接]
1501|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
自民|  楼主 | 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

粉丝