请教下一个lm3s uart问题

2019-03-24 15:56发布

UARTFIFODISable(UART0_BASE); 开始的时候我禁能了UART0 FIFO。然后用uart_echo的例程调试程序。发现本来串口工具应该出现Enter test: 字符串的  到后来只发送了2个字节En我把断点设置在函数UARTSend里面的UARTCharPutNonBlocking这一行。如果是全速运行UARTCharPutNonBlocking会返回false。单单按下F10的话 ,字符串Enter test: 显示正常我跟踪进去,发现驱动是把要发送的字符串放到发送的16字节FIFO里面。由于能力不足,只能跟踪到这步,请大侠们指点迷津。为什么只发送了2字节,就返回false 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
heycare
2019-03-24 18:30
< :TI_MSP430_内容页_SA7 --> void
UARTSend(const unsigned char *pucBuffer, unsigned long ulCount)
{
    //
        int flag = 0;
    // Loop while there are more characters to send.
    //
    while(ulCount)
    {
        //
        // Write the next character to the UART.
        //
        if((flag = UARTCharPutNonBlocking(UART0_BASE, *pucBuffer)) == 1)
                {
                          pucBuffer++;
                        ulCount--;
                }               
    }
}
我把串口发送函数改写成上面这样。发现可以了。
个人理解是我设置的波特率为115200。发送一个字节大概是80us。当串口发送FIFO卡主的时候,程序仍然进行ulCount--
一下子函数就结束了。。所以只发送了2字节~~
希望大家一起研究下~~

一周热门 更多>

相关问题

    相关文章