我试图为我的一个项目创建一个UART Pass。但我无法弄清楚我应该如何绑定微控制器的引脚。我使用嵌入式C& Keil编程。
答案 0 :(得分:4)
通常不可能直接透明地将一个UART连接到另一个UART。您必须提供适当的软件才能将数据从一个UART传输到另一个UART。
如果两个UART以相同的波特率运行,这可能相对简单 - 您可以从一个UART读取Rx寄存器并将值写入另一个UART的TX寄存器(反之亦然,用于双向通信)。如果使用UART中断处理程序实现此功能,则它可能对MCU上运行的其他代码更加透明或更不透明。为了在没有缓冲的情况下工作,您必须确保在发生硬件溢出之前可以将数据从一个UART传输到另一个UART - 您的硬件可能有也可能没有FIFO,因此硬件缓冲可能与Rx一样少寄存器和输入移位寄存器(两个字节)。如果发生其他可能干扰此操作的软件操作,您可能仍需要缓冲。
如果波特率不同,则需要至少为两个端口中的较慢端口提供缓冲,并且您将无法将数据从快速端口流式传输到慢速端口 - 必须暂停数据流以防止缓冲区耗尽。
在某些设备上,通过使用DMA传输可能会显着降低软件开销(我不太可能想象)。
无论如何,您仍然需要软件来启用和配置UART - 没有硬件或简单的“引脚”直通解决方案。
答案 1 :(得分:0)
我建议查看UART配置寄存器或路由寄存器中是否存在UART通过位。除此之外,我只使用从PC UART到传感器UART的飞线。