430的串口程序,快把我逼疯了

2019-03-24 13:13发布

在使用msp430afe253调试一个串口程序,程序如下:

  DCOCTL = DCO0+DCO1;
  BCSCTL1 = RSEL2+RSEL1+RSEL0;              // 配置时钟,主时钟1MHz //
  BCSCTL2 = 0x00;;                          // 配置时钟,SMCLK为1MHz //
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P1SEL = BIT3;                             // P1.3=TXD
  P2SEL = 0x00;
  ME1 |= UTXE0;                             // Enable USART0 TXD
  U0CTL |= CHAR;                            // 8-bit character
  U0TCTL |= SSEL1;                          // BRCLK= SMCLK
  U0BR0 = 0x68;                              
  U0BR1 = 0x00;                             
  U0MCTL = 0x10;                            // 波特率9600Hz
  U0CTL &= ~SWRST;                          // Initialize USART state machine
  IE1 |= UTXIE0;                            // Enable USART0 TX interrupt
  TXBUF0=0x3c;
  __bis_SR_register(GIE);                   // Enter all interrupts
   while(1);


#pragma vector=USART0TX_VECTOR
__interrupt void USART0TX(void)
{
    TXBUF0 = 0xaa;
}

我现在全速运行时无法进入中断,但是全速运行中stop一下就能很快进入中断了,但是在中断中无法发送出去信号,我用示波器检测捕捉不到信号。另外我关闭串口中断,在主程序中用查询方式发送串口数据,也无法发送出去。但是之前我在主程序中能发出去,后来忘了改了哪一块儿现在发不了了。请大神们帮帮忙吧。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
ly971021598
2019-03-25 02:41
我用的是MSP430F149的芯片,单片机的串口通讯有特定的引脚,如果你确定你的硬件没接错的话,你的代码比较少可以单步调试看看。

一周热门 更多>

相关问题

    相关文章