Raspberry Pi在打开UART端口时发送不需要的字符

时间:2014-01-22 13:14:46

标签: c character raspberry-pi uart

我是Raspberry Pi的新手,我需要一些UART通信方面的帮助。 我遵循了本教程:http://www.raspberry-projects.com/pi/programming-in-c/uart-serial-port/using-the-uart

总的来说,它似乎工作正常,但Raspberry Pi在串口打开后发送了一个不需要的字符。我在类似的帖子中看到这是一个已知问题,有几个人正在链接到此页面:https://github.com/lp0/linux/commit/d5a48d1f54d2e736cdfa7d6e1602e69feb36c773

但我不太明白这里发生了什么。

我打开串口的功能如下所示:

int uart_open()
{
    uart0_filestream = open("/dev/ttyAMA0", O_RDWR | O_NOCTTY | O_NDELAY);      
    if (uart0_filestream < 0)
    {
         return 0;
    }
    else
    {
         return 1;
    }
}

打开端口并发送不需要的字符后,UART按预期运行。知道解决方案的人吗?

2 个答案:

答案 0 :(得分:0)

如果驱动程序正在这样做(如GitHub链接中所示),那么在应用程序级别上你可能做的很少。

这只是串口驱动程序中的一个错误;串口不应该发送自发数据。

答案 1 :(得分:0)

UART与时钟不同步,因为它是异步的。这意味着两端的时钟永远不会完全相同。因为某些设备没有正确接收第一个开始和停止位。应发送虚拟角色以确保良好的沟通。