打印
[技术问答]

我想問新唐NUC120LE3AN的Driver的uart

[复制链接]
1578|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
謙1127|  楼主 | 2014-9-15 22:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好:
我想請問新唐Drvuart裡面的int32_t DrvUART_Write(E_UART_PORT        u32Port,uint8_t        *pu8TxBuf,         uint32_t u32WriteBytes)
這個副程式,裡面內容我有點看不懂,希望可以教我這個怎麼看,尤其
1)tUART = (UART_T *)((uint32_t)UART0 + u32Port);  
2) if ( u32delayno >= 0x40000000 )                 
                      return E_DRVUART_ERR_TIMEOUT;  
這兩條。我想知道他怎麼運作的

以下是完整的副程式
int32_t DrvUART_Write(E_UART_PORT        u32Port,uint8_t        *pu8TxBuf,         uint32_t u32WriteBytes)
{
    uint32_t  u32Count, u32delayno;

        UART_T * tUART;

        tUART = (UART_T *)((uint32_t)UART0 + u32Port);  

    for (u32Count=0; u32Count<u32WriteBytes; u32Count++)
    {
       u32delayno = 0;
           while (tUART->FSR.TE_FLAG !=1)                                        /* Wait Tx empty and Time-out manner */
       {
                   u32delayno++;
                   if ( u32delayno >= 0x40000000 )                 
                      return E_DRVUART_ERR_TIMEOUT;                    
                                  
       }                     
           tUART->DATA = pu8TxBuf[u32Count];                                                /* Send UART Data from buffer */
    }

    return E_SUCCESS;
       
  
}

拜託各為了YY
沙发
电子云图| | 2014-9-16 20:31 | 只看该作者
tUART = (UART_T *)((uint32_t)UART0 + u32Port); /* 确定使用哪个UART */
if ( u32delayno >= 0x40000000 )                 /* 若超时 */
                      return E_DRVUART_ERR_TIMEOUT;  /* 返回超时错误 */

使用特权

评论回复
板凳
gaoyang9992006| | 2014-9-17 17:41 | 只看该作者
获取使用的UART端口,然后tUART->FSR.TE_FLAG !=1判断该标志位,同时计数,如果超过了规定的数,就返回错误码。

使用特权

评论回复
地板
謙1127|  楼主 | 2014-9-19 14:52 | 只看该作者
电子云图 发表于 2014-9-16 20:31
tUART = (UART_T *)((uint32_t)UART0 + u32Port); /* 确定使用哪个UART */
if ( u32delayno >= 0x40000000 ...

想請問一下,若uart接收時沒收完整,例如16byte的資料只收到後面的8byte之類的,想請問這是什麼情況?

使用特权

评论回复
5
电子云图| | 2014-9-19 22:35 | 只看该作者
謙1127 发表于 2014-9-19 14:52
想請問一下,若uart接收時沒收完整,例如16byte的資料只收到後面的8byte之類的,想請問這是什麼情況? ...

收到不完整呗!用CRC校验,若发现数据不完整要求重发。

使用特权

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

本版积分规则

5

主题

17

帖子

1

粉丝