本人用的msp430fr6989(msp430系列大同小异),datasheet中有句非常关键的一段话:
30.3.15.1 UART Transmit Interrupt Operation
The UCTXIFG interrupt flag is set by the transmitter to indicate that UCAxTXBUF is ready to accept
another character. An interrupt request is generated if UCTXIE and GIE are also set. UCTXIFG is
automatically reset if a character is written to UCAxTXBUF.
翻译下来就是说:UCTXIFG这个flag(flag置0即产生中断)是为了表示前一个char发送完成后,可以加载下一个char入UCAxTXBUF了。UCTXIE and GIE设置后也可以触发中断请求。UCAxTXBUF写入一个新数据后,UCTXIFG的flag自动重置。
所以串口中断程序大致思路:
1.举例定义char a[100],我们软件里赋值UCTXIE为1(GIE可以不管),进入中断函数
2.进入中断函数后,a[0]送到UCAxTXBUF里面,中断函数结束,UCAxTXBUF发送a[0]完成后,UCTXIFG中断标志触发,又进入中断函数,发送a[1],中断函数结束,UCAxTXBUF发送a[1]完成后,UCTXIFG中断标志触发..........发完a[99]
3.发完a[99]后,关串口中断,over。
|