HC32L190,串口使用缓冲空中断进行发送。也就是图中的TXE:
现在要做休眠,也就要并且要关闭主时钟,就要等待串口数据确实发完再关闭。
也就是要等到这个最后一个红箭头:
但是我在TXE中断中填入了最后一个数据,就要后面出现两个TC中断,才能保证数据全部发完。
问题是,因为临界区和高优先级中断的缘故,无法保证最后一次在TXE中填入数据的时机,如果填入的时机稍晚,后面就只会有一个TC中断
也就是说,TXE后面要等1个或者2个TC中断,就说明数据发完了就可以进入休眠并且关闭时钟了。
但是具体是1个还是2个TC中断,完全不知道!
这要怎么办呢?
这个芯片没有TXBusy标志位。
我想了半天也没有想到怎么解决这个问题,求助各位,多谢了。
|