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

[复制链接]
3536|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可以让程序知道发送结束的确切时间,有利于程序控制外部数据流的时序。
杨爱林林 发表于 2012-12-6 16:39 | 显示全部楼层
楼上的回答很精彩
songhere 发表于 2012-12-7 00:04 | 显示全部楼层
应该是这么回事,USART中有发送缓冲寄存器,和发送移位寄存器,后者对编程者是不可见的。。   发送时先写进发送缓冲寄存器中,然后发送缓冲寄存器转移到移位寄存器,这时USART_FLAG_TXE置位(表明发送缓冲空了),等移位寄存器将数据移出,这时再置位USART_FLAG_TC  (表明完成发送了)。。。
这应该是两者的区别,芯片这样做的主要原因是波特率相对主频来说很低的,两步都有中断,这样通过一些编程技巧,实时性可以提高。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部