C-覆盆子Pi在打开UART港口时会派出不需要的沙子



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

总的来说,这似乎还不错,但是Raspberry Pi在打开串行端口后会发出不必要的角色。我在类似的帖子中读到这是一个已知问题,几个人链接到此页面:https://github.com/lp0/linux/commit/d5a48d1f54d4d2e736cdfa7d6e1602e602e69feb36c7777777773.

但是我不太了解这里发生了什么。

我打开串行端口的功能如下:

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

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

如果驱动程序正在执行此操作(如GitHub链接中所示),那么您在应用程序级别上可能几乎无能为力。

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

uart与时钟不同步,因为它是异步的。这意味着两端的时钟永远不会完全相同。因此,某些设备无法正确接收第一次启动和停止位。应该发送虚拟角色以确保良好的沟通。

相关内容

  • 没有找到相关文章

最新更新