请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430F1611 工具/软件:Code Composer Studio
我正在使用 ISR 中的发送缓冲区空标志来发出传输完成时的信号。 这是在使用两根线485的系统中、因此使用一个额外的 IO 来设置485驱动器芯片的方向。 我发现、如果在检测到发送缓冲区为空后不插入延迟、则方向控制被设置为在最后一位实际完成之前接收。 实际上、如果我应用任何 UART 控制位来使串行通信在 MSP 内部进行接收、例如使用 SWRST 将 UART 置于复位状态或更改 ME 位、则数据不会完成。 我发现、在执行任何操作以转到接收条件之前、我必须为循环执行至少10次计数。 MSP 以7.3MHz 运行、波特率为230400。
这是 MSP430的典型情况、还是我应该在 UART 状态机内部查看其他内容、以保证所有数据都已清除端口、包括停止位? (8N1)。