我计划用TC中断发送缓存区里的一段数据,所以在系统初始化的时候就使能了TC中断(禁能TXE中断),然后程序跑着跑着出了诡异的问题:
本来我的机器是要作为服务端,要客户端发请求才会回响应的,但是现在我还没从客户端发请求,这边就已经进入TC中断了,更吊诡的是,刚在ISR中清除完TC标志,还没执行后面的中断服务,TC位又被设置起来了,于是又进入了ISR...
我根本没来得及往DR里写东西呀,怎么老就出TC中断呢。
void int_uart_tx2(void)
{
mClearUart2TxdIntFlag;
sSciTxISR(2);
}
我在sSciTxISR的入口设了断点,只进入过1次,然后就是不停的进入这个函数。往DR写数据的函数有两个,其中一个就是这个sSciTxISR,另一个我也设置了断点,从来就没有跑到过。
顺便问一句,那位大侠了解芯片是怎么判断transfer complete的? |