对于MCF5214的UART还有些疑惑,请教。
我的UART中断子程序流程简单描述如下:
1.中断接收一个数据包。
2.判断接受正确后设置寄存器UCR,使能发送。
3.发送完毕后,设置寄存器UCR,使能接收,接收下一个数据包。(判断是否发送完毕是通过判断USR的TxEMP是否为1来实现。)
每次在发送完数据包最后一个数据后,下一次中断依旧由USR的TXRDY位置位引发,而使能接收必须在TxEMP置位后执行,否则会引起发送数据包的最后一个或两个数据丢失(因为还没来得及冲缓冲区发出去就被设成接收模式了),那么在TXRDY置位到TxEMP置位之间的这段时间,因为TXRDY置位,所以会一直引发中断,实际上是这样的吗?如果是的话,这显然是不合理的,请问该如何解决?
可能是我的方法存在问题,那么该如何处理才合理? |