标题: 关于UART中断发送 [打印本页]
作者: hitmissile 时间: 2007-5-22 00:17 标题: 关于UART中断发送
对于MCF5214的UART还有些疑惑,请教。
我的UART中断子程序流程简单描述如下:
1.中断接收一个数据包。
2.判断接受正确后设置寄存器UCR,使能发送。
3.发送完毕后,设置寄存器UCR,使能接收,接收下一个数据包。(判断是否发送完毕是通过判断USR的TxEMP是否为1来实现。)
每次在发送完数据包最后一个数据后,下一次中断依旧由USR的TXRDY位置位引发,而使能接收必须在TxEMP置位后执行,否则会引起发送数据包的最后一个或两个数据丢失(因为还没来得及冲缓冲区发出去就被设成接收模式了),那么在TXRDY置位到TxEMP置位之间的这段时间,因为TXRDY置位,所以会一直引发中断,实际上是这样的吗?如果是的话,这显然是不合理的,请问该如何解决?
可能是我的方法存在问题,那么该如何处理才合理?
作者: hitmissile 时间: 2007-5-23 23:37
上面部分内容理解错了,因为用UART来实现485通信,用一个I/O控制485芯片的使能脚,而使能脚最好是在TxEMP置位后执行,否则会引起发送数据包的最后一个或两个数据丢失(因为还没来得及冲缓冲区发出去就将485芯片设成接收模式了),因为程序的需要,接收->发送->接收的转换都是在中断程序中完成,而TxEMP置位不会产生中断,那么就无法在合适的时候控制485芯片的使能脚,以前的68332似乎有个空闲线信号,表示发送完毕,那个就比较好办。请教seuafu,谢谢。
作者: seuafu2005 时间: 2007-5-24 15:21
恩,采用中断的话是会有这个问题。一般比较土的办法就是发送完做一个延时再切换成接收状态。
作者: hitmissile 时间: 2007-5-24 18:51
晕阿,这样啊,谢谢
作者: andong1984 时间: 2008-11-17 16:59
刚刚学习52233,想找个关于UART的实例跑跑,楼主有的话麻烦发一份到我邮箱里吧,谢谢,我的邮箱:249350656@qq.com
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |