不确定这是否会影响到 Bobby。 如果是、您好、Bobby 好久不见了。
无论如何、我现在尝试将 INTA 用于我的 TX/RX ISR。 对于两个处理器之间传输的40字节命令/响应数据、一切都运行良好。
我遇到的问题是大块数据(292字节响应数据包)。 这需要四个60字节块和一个52字节块。
当我设置485LG 位并开始传输292字节数据包时、我无法使数据流正常工作。
我的问题是:
是否应继续设置 THR Space Available Interrupt?
准备发送292个字节时、我将使用以下设置:
- TLR 值设置为0x0F (60字节 Tx FIFO)
- 485LG 位设置为1
- 485EN 位设置为1
- RCVEN 位设置为1
- RHR 中断被启用
- THR 中断被启用
- IRQA 已启用
在 ISR 内部、我执行以下操作:
- 读取 IIR
- switch 语句用于活动中断
- RHR 中断读取请求数据包并生成响应数据包(在本例中为292字节)
- 一旦生成响应数据包、THR 中断就会被启用
- 在 THR 情况下、发送一个字节并重新启用 THR 中断、直到完成292个字节
- 完成后、禁用 THR 中断
- 接收下一个请求并再次生成响应。
我是否需要将传输实际分解为四个60字节块和最后的52字节块?
准备好52字节块时、我是否需要将485LG 位设置为0?
感谢您的帮助、
Reif Heck