TMS320F28069 SCI FIFO一直进入发送中断,采用TI例程Sci_FFDLB_int ,想该写用RS485 ,采用中断接收发送,但是例程中一直无限发送数据,怎样触发中断的呢?为了发送使能(485的EN)在中断函数中加了延时函数,以至于连主函数For循环都进不去了。
想请教一下,1检测哪个寄存器可以知道发送完成? 2想要自己控制发送进入中断。
zhao hj:
我找到 SciaRegs.SCIFFTX.bit.TXFFIENA = 0; 控制FIFO Txd 中断,但是我怎样检测知道我要发的数据发送完成呢?现在只能用delay函数延时解决。
TMS320F28069 SCI FIFO一直进入发送中断,采用TI例程Sci_FFDLB_int ,想该写用RS485 ,采用中断接收发送,但是例程中一直无限发送数据,怎样触发中断的呢?为了发送使能(485的EN)在中断函数中加了延时函数,以至于连主函数For循环都进不去了。
想请教一下,1检测哪个寄存器可以知道发送完成? 2想要自己控制发送进入中断。
Eric Ma:
回复 zhao hj:
如果你是能FIFO发送中断,那么当FIFObuffer里面没有数据了,就一定会不断进入中断,让你填充新的数据。
当然,你也可以使用查询方式,就是关闭FIFO中断,通过查询SCIFFTX. TXFFST4-0来知道FIFO里面还剩下多少个字节的数据还没发。
ERIC
TMS320F28069 SCI FIFO一直进入发送中断,采用TI例程Sci_FFDLB_int ,想该写用RS485 ,采用中断接收发送,但是例程中一直无限发送数据,怎样触发中断的呢?为了发送使能(485的EN)在中断函数中加了延时函数,以至于连主函数For循环都进不去了。
想请教一下,1检测哪个寄存器可以知道发送完成? 2想要自己控制发送进入中断。
zhao hj:
回复 Eric Ma:
Hi ERIC
谢谢你的回复。我就是通过查询SCIFFTX. TXFFST4-0的,但是发现如果SCIFFTX. TXFFST4-0为空的话,我还需要延时一段时间数据才能发完。
TMS320F28069 SCI FIFO一直进入发送中断,采用TI例程Sci_FFDLB_int ,想该写用RS485 ,采用中断接收发送,但是例程中一直无限发送数据,怎样触发中断的呢?为了发送使能(485的EN)在中断函数中加了延时函数,以至于连主函数For循环都进不去了。
想请教一下,1检测哪个寄存器可以知道发送完成? 2想要自己控制发送进入中断。
Eric Ma:
回复 zhao hj:
那段时间你不用管它啦,最后一个字节发送到串口了由串口自己移位发送出去。
发完的时间取决你的波特率。