RS232通信总是返回发送值

2019-03-24 13:15发布

我用MSP430FG437做了一个RS232串口通信电路,用官方例程测试,能够收到电脑发给单片机的数据。然后稍微修改了一下程序(如下红 {MOD}部分),想让单片机通过接收中断返回一个固定的值,发现无论data如何变化,总是返回电脑发送给单片机的数据。接着我将单片机发送数据的指令TXBUF=data取消了,结果还是会返回发给单片机的数据。我用万用电表测了一下,发送跟接收管脚之间没有短路。请问这是什么问题,应该怎么解决呢?



#include  <msp430FG437.h>
unsigned char data = 'a';
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  FLL_CTL0 |= XCAP18PF;                     // Configure load caps
  P2SEL |= 0x30;                            // P2.4,5 = USART0 TXD/RXD
  ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character
  UTCTL0 |= SSEL1;                          // UCLK = SMCLK
  UBR00 = 0x6D;                             // 1MHz 9600
  UBR10 = 0x00;                             //
  UMCTL0 = 0x03;                            // Modulation
  UCTL0 &= ~SWRST;                          // Initialize USART state machine
  IE1 |= URXIE0;                            // Enable USART0 RX interrupt
  P2DIR |= 0x10;                            // P2.4 output direction
  _EINT();
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
}

#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?
  //TXBUF0 = RXBUF0;                          // RXBUF0 to TXBUF0
  TXBUF0 = data;

} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
yangxf1217
1楼-- · 2019-03-24 18:26
是不是没下载进去啊,要在option里的debug有个选项的,不能选sumulation。。。。。
yangxf1217
2楼-- · 2019-03-24 19:44
 精彩回答 2  元偷偷看……
zgbkdlm
3楼-- · 2019-03-24 21:35
一块玩...看YANG兄好像喜欢玩DOTA啊....散失之刃...
liyuxi
4楼-- · 2019-03-25 02:40
那个选项选了的,还试了一下PMW的测试程序可以运行,应该不是没烧进去
yangxf1217
5楼-- · 2019-03-25 04:30
 精彩回答 2  元偷偷看……
liyuxi
6楼-- · 2019-03-25 09:43
现在问题已经解决了,之前出现错误是因为接地没接好,加上与电平转换模块之间的数据发收线接反了 ,此外单片机也出了一点问题。线改好、换了一块新的电路板之后就没有问题了

一周热门 更多>

相关问题

    相关文章