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