0

我正在开发一个嵌入式项目,其中包括两个半双工 UART 和一个全双工 UART。

UART1 连接到Device A。UART2 连接到Device B,UART3 连接到PC。UART1 和 UART2 是半双工的,因此必须正确配置 RX/TX 模式。

当触发 UART1 上的信号时,UART2 从设备 B 获取一些数据。该数据被放入缓冲区,然后传输回 UART1 和 UART3。设备 A 消耗数据,并在 UART1 上发送更多项目,然后必须将其传递到 UART2 以供设备 B 响应。

我正在考虑一个高效的状态机,它可以处理 TX/RX 模式之间的切换模式,到目前为止,我的 UART 代码是中断驱动的。有什么方法可以解决这个程序的流程?

4

1 回答 1

0

I don't think you will need a state machine for this case. Why not just hook up all interrupts accordingly and just forward anything received from one devivce to the other(s)?

You may want to include a TX (ring-)buffer to accomodate for different speeds of each UART and then just have a RX-ISR write the data received to the appropriate TX buffer(s), from where it will then be consumed by the other UARTs' UDRE-ISRs.

于 2013-08-27T14:31:33.773 回答