中断模式发送主要是监控和响应TXE和TC中断.如下图所示.
![](https://img.haomeiwen.com/i14552403/1e7f404bf92aa8e1.jpg)
TXE=1表示数据寄存器没满,可以写入1个字节,写入后TXE由硬件清零.所以不需要软件进行清零操作.
当所有字节都写入完毕后,此时TXE=1,等待最后一个字节发送完毕,此时TC由硬件置1,表明所有数据都发送完毕.TC需要软件清零.
发送流程为:
1.
主程序
:向TDR写入第一个字节,同时开启TXE中断.第一个字节发送完毕后,TXE置1,引起中断.
2.
USARTx_IRQHandler
调用TXE_Callback
.3.
TXE_Callback
:写入下一个字节.过程2-3往复进行,直到要发送最后一个字节,这个判断放在
TXE_Callback
中.4.写入最后一个字节,同时开启TC中断,禁用TXE中断.该操作也在
TXE_Callback
中执行.最后一个字节发送完毕,TC置1,引起中断.
5.
USARTx_IRQHandler
调用TC_Callback
,清零TC标志位.6.
TC_Callback
:传输完成,禁用TC中断,并进行各项标志和计数重置操作.
网友评论