1.TI官方代码MSP430F55xx_uscia0_uart_01.c是实现对串口接收的数据,进行重发。但为何没有使能串口发送中断,而代码中又对发送中断标志位进行了判断。见图
2. 怎样进行串口接收、发送函数的模块化封装。这是我写的代码,在主函数中调用USCIA1_SendChar(Ch)没反应
发送没反应。(PS:__bis_SR_register(GIE), 我在系统初始化中,已添加。)【求各路大神速速指点,感恩!!!】

This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
今天我调的时候搜索了一下,发现了你的问题,然后我讲讲我的理解。
首先你说的中断使能问题,dome里只有rx的中断使能,然后我们看中断里面的switch下的注释Vector 2 - RXIFG这一行。case0和case4都是空的,其实这一大段代码的功能就是把收到的数据原样发回去,那么就不存在主动发送这个事情,那么tx的中断使能就是没有必要了,因为我只有接收到数据才发,然后中断就只能由rx来出发。
说到检测UCTXIFG这个事情,我觉得应该是在连续接收到数据的情况下保证发送数据的完整性。
上面是我的理解啊,在详细只有请教亲爱的TI工程师了
楼主,能问一个问题吗,你也是用5529那一块板吗,为什么我用5529烧录不进去,升级之后就找不到驱动了我用的是ccs6.0
额,这个贴介绍的是对外部仿真器降级,没有介绍到eZ-FET-Lite,你能不能跟我说一说当时降级的时候有没有用其他的东西降级,还是直接板子连接电脑,有没有具体操作,我刚接触msp不久,对这些都不知道,这纠结了我好几天了,麻烦你了,感激不尽
但为何没有使能串口发送中断,
A: “发送中断”的产生是UCA1TXBUF中数据发送完成,程序中没有做TX 中断,是因为不需要再TX完成后做什么动作。
TX触发比较常见的用途就是和DMA配合,自动发送一长串数据。就是你DMA的source 设好,target设到UCA1TXBUF,响应TX触发,这样你cpu就可以干别的事情去了,点一下DMA开始,然后uart模块会在一个字节TX完成之后再填入下一个字节。
而代码中又对发送中断标志位进行了判断。
A:中断程序中只相应了Vector2,RX中断,并没有响应TX中断。
怎样进行串口接收、发送函数的模块化封装。
A:发送一个Char就用以下命令就行了啊
while (!(UCA1IFG&UCTXIFG)); UCA1TXBUF = ch;
接收的话,就堆到内存就是了呗,判断一下特定字符,比如回车啥的做一下处理。
UCA1_RX_BUFFER[UCA1_RX_Count]=UCA1RXBUF;
UCA1_RX_Count++;
我现在在用的uart debug程序你可以参考一下附件,我用的UCA1端口,然后我CPU速度是16M,波特率啥的要调一下。