请教下一个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
1楼-- · 2019-03-24 17:56
< 我在调试UARTCharPutNonBlocking的时候。当他返回false。我用keil的外设 使能FIFO。 这时候发送字节又正确了~~~
heycare
2楼-- · 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字节~~
希望大家一起研究下~~
David_Lee
3楼-- · 2019-03-24 19:56
 精彩回答 2  元偷偷看……
heycare
4楼-- · 2019-03-24 22:22
额 是的。~~ 我也是把他改成要等待的函数~~
ddllxxrr
5楼-- · 2019-03-25 02:22
将字符 ucData 写入指定端口的发送 FIFO。这个函数不会停滞(block),因此,如果发
送 FIFO 中没有可用的空间,则函数返回 False,应用迟点将会再尝试执行这个函数。
ddllxxrr
6楼-- · 2019-03-25 06:53
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章