打印

请教下这二者发送完成中断的区别

[复制链接]
2878|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangfeng33|  楼主 | 2012-12-5 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教下 各位高手!
串口中
USART_FLAG_TC 发送完成中断与USART_FLAG_TXE 发送中断的区别?
沙发
uet_cache| | 2012-12-5 21:45 | 只看该作者
TC:Transmission Complete 传送完成
TXE :Transmit Data Register Empty  传送数据寄存器空

使用特权

评论回复
板凳
uet_cache| | 2012-12-5 21:45 | 只看该作者
应用中应该差不多吧

使用特权

评论回复
地板
拿起书本| | 2012-12-5 21:55 | 只看该作者
TXE允许程序有更充裕的时间填写TDR寄存器,保证发送的数据流不间断。TC可以让程序知道发送结束的确切时间,有利于程序控制外部数据流的时序。

使用特权

评论回复
5
杨爱林林| | 2012-12-6 16:39 | 只看该作者
楼上的回答很精彩

使用特权

评论回复
6
songhere| | 2012-12-7 00:04 | 只看该作者
应该是这么回事,USART中有发送缓冲寄存器,和发送移位寄存器,后者对编程者是不可见的。。   发送时先写进发送缓冲寄存器中,然后发送缓冲寄存器转移到移位寄存器,这时USART_FLAG_TXE置位(表明发送缓冲空了),等移位寄存器将数据移出,这时再置位USART_FLAG_TC  (表明完成发送了)。。。
这应该是两者的区别,芯片这样做的主要原因是波特率相对主频来说很低的,两步都有中断,这样通过一些编程技巧,实时性可以提高。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

粉丝