msp430g2553串口通信问题,一直重复发生A,怎样才能停止?

2019-03-24 10:50发布

#include <msp430g2553.h>

int main(void)
{
  DCOCTL = 0;
  BCSCTL1 = CALBC1_16MHZ;
  DCOCTL = CALDCO_16MHZ;
  BCSCTL1 |= DIVA_1;    //ACLK =MCLK/2=8M
  BCSCTL2 |= DIVS_1;    //SMCLK=MCLK/2=8M

  P1DIR  |= BIT2;           //P1.2  UART_TX
  P1DIR  &= ~BIT1;           //P1.2  UART_RX
  P1SEL  |= BIT1+BIT2;      //select P1.1 and P1.2 as UART port
  P1SEL2 |= BIT1+BIT2;
  
  UCA0CTL1 |= UCSWRST;      // reset UART module,as well as enable UART module
  UCA0CTL1 |= UCSSEL_2;     // UART clock is SMCLK
  UCA0BR0  |= 65;           // Baud N=BCLK/rate,rate=9600,BCLK=SMCLK=8M
  UCA0BR1  |= 3;
  UCA0MCTL  = UCBRS1;      // UCBRSx=2
  UCA0CTL1 &= ~UCSWRST;     // UART reset end
  
  IE2 |= UCA0TXIE;          // Enable USCI_A0 TX interrupt

  _EINT();
  while (1);
}

// USCI A0/B0 Transmit ISR
#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)
{
  UCA0TXBUF = 'A';                 // TX next character
  
  IE2 &= ~UCA0TXIE;                // Disable USCI_A0 TX interrupt
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
qiushenghua
1楼-- · 2019-03-24 21:14
< 我咋觉得是因为你忘记关看门狗了,然后隔一段时间复位发送一个A,隔一段时间又复位发送一个A了呢?
bobde163
2楼-- · 2019-03-25 00:14
< :TI_MSP430_内容页_SA7 --> 你没有清除发送中断标志吗
howelia
3楼-- · 2019-03-25 04:19
 精彩回答 2  元偷偷看……
bobde163
4楼-- · 2019-03-25 06:31
发送完一次之后,不用清空TXBUF,只要不重新赋值就可以了,至于你这个无法停止的问题,我觉得很奇怪
bobde163
5楼-- · 2019-03-25 11:56
qiushenghua 发表于 2014-10-10 21:27
我咋觉得是因为你忘记关看门狗了,然后隔一段时间复位发送一个A,隔一段时间又复位发送一个A了呢?

好像是啊,没有关于看门狗的操作,还是你看得仔细
howelia
6楼-- · 2019-03-25 12:35
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章