首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于UART中断发送

关于UART中断发送

对于MCF5214的UART还有些疑惑,请教。

我的UART中断子程序流程简单描述如下:
1.中断接收一个数据包。
2.判断接受正确后设置寄存器UCR,使能发送。
3.发送完毕后,设置寄存器UCR,使能接收,接收下一个数据包。(判断是否发送完毕是通过判断USR的TxEMP是否为1来实现。)

每次在发送完数据包最后一个数据后,下一次中断依旧由USR的TXRDY位置位引发,而使能接收必须在TxEMP置位后执行,否则会引起发送数据包的最后一个或两个数据丢失(因为还没来得及冲缓冲区发出去就被设成接收模式了),那么在TXRDY置位到TxEMP置位之间的这段时间,因为TXRDY置位,所以会一直引发中断,实际上是这样的吗?如果是的话,这显然是不合理的,请问该如何解决?
可能是我的方法存在问题,那么该如何处理才合理?
上面部分内容理解错了,因为用UART来实现485通信,用一个I/O控制485芯片的使能脚,而使能脚最好是在TxEMP置位后执行,否则会引起发送数据包的最后一个或两个数据丢失(因为还没来得及冲缓冲区发出去就将485芯片设成接收模式了),因为程序的需要,接收->发送->接收的转换都是在中断程序中完成,而TxEMP置位不会产生中断,那么就无法在合适的时候控制485芯片的使能脚,以前的68332似乎有个空闲线信号,表示发送完毕,那个就比较好办。请教seuafu,谢谢。
恩,采用中断的话是会有这个问题。一般比较土的办法就是发送完做一个延时再切换成接收状态。
晕阿,这样啊,谢谢

刚刚学习52233,想找个关于UART的实例跑跑,楼主有的话麻烦发一份到我邮箱里吧,谢谢,我的邮箱:249350656@qq.com

返回列表