我是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按预期运行。知道解决方案的人吗?
答案 0 :(得分:0)
如果驱动程序正在这样做(如GitHub链接中所示),那么在应用程序级别上你可能做的很少。
这只是串口驱动程序中的一个错误;串口不应该发送自发数据。
答案 1 :(得分:0)
UART与时钟不同步,因为它是异步的。这意味着两端的时钟永远不会完全相同。因为某些设备没有正确接收第一个开始和停止位。应发送虚拟角色以确保良好的沟通。