Part Number: TMS320F2800157
您好,我正在使用TMS320F2800157的SCI,开启了发送和接收的FIFO中断,接收数据时工作正常,但是发送中断有问题。应用软件还没写数据到SCITXBUF寄存器,就产生了TX INT的中断,麻烦帮忙看一下初始化代码是否有问题,谢谢!
Transmit FIFO 中断触发条件为TXFFST <= TXFFIL
TXFFIL当前设置为16
因为没有写入数据,TXFFST为0,满足中断条件。
正确做法先禁用TXFFIENA位,在需要发送的时候启用该位,然后在中断中处理发送,发送完成后禁用中断。
感谢分享您的想法。
谢谢你的答复,如果初始化时TXFFIENA置位,因为TXFFST默认为0,不管TXFFIL设置多大值,即使没写数据到SCITXBUF寄存器,也会产生中断对吗?
我现在初始化时TXFFIL设置为1,TXFFIENA禁用,在写完数据到SCITXBUF后再启用TXFFIENA,看起来发送中断工作正常了。
Q:如果初始化时TXFFIENA置位,因为TXFFST默认为0,不管TXFFIL设置多大值,即使没写数据到SCITXBUF寄存器,也会产生中断对吗?
A:是的,只要使能中断,就一定会触发中断
Q:我现在初始化时TXFFIL设置为1,TXFFIENA禁用,在写完数据到SCITXBUF后再启用TXFFIENA,看起来发送中断工作正常了
A:TXFFIL设置1就无法完全发挥FIFO的优势了,建议将TXFFIL设置为8,这样每次空闲8字节时中断,然后在中断中1次写入8个字节。
好的,我试一下,谢谢你的支持!