MSP430F248求助问题,急!!!

2019-03-24 15:23发布

大家好,我用MSP430F248做的一个程序,功能很简单,就是隔2秒左右串口发一个数据出去,但现在问题是用仿真器数据能发出,但是上电后串口数据就无法发出了(程序确定在跑,我用IO口输出个翻转电平监视的),请各位高手帮忙看看啊。

程序如下:

#include "msp430x24x.h"

unsigned char NoData[]={'!','3','3','N','O','?','R'};             //没有数据发送的命令

void main( void )
{
  // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;
    BCSCTL1 &= ~XT2OFF;                        //打开XT振荡器
    BCSCTL2 |= SELM1 + SELS;                  //MCLK为8MHZ,SMCLK为1MHZ
      
    P3SEL = 0x30;                             // P3.4,5 = USCI_A0 TXD/RXD
    
    UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
    UCA0BR0 = 0x03;                           // 32kHz/9600 = 3.41
    UCA0BR1 = 0x00;
    UCA0MCTL = UCBRS1 + UCBRS0;               // Modulation UCBRSx = 3
    UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
   
    CCTL0 = CCIE;                             //使能CCR0中断
    CCR0 = 6000;                             //设定周期2S               
    TACTL = TASSEL_1 + ID_3 + MC_1;          //定时器A的时钟源选择ACLK,增计数模式
    P1DIR = 0xff;                            //设置P2口方向为输出
    P1OUT = 0xff;
   
    P6DIR = 0xff;                 
    P6OUT = 0xff;

    _EINT();                                //使能全局中断

   while(1)
   {};

}


#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)

  _DINT();
  P1OUT ^= 0xff;                        //P2口输出取反
  for(int i=0;i<7;i++)
  {
   while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
   UCA0TXBUF = NoData;                        // TX -> RXed character
  }
    _EINT();
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
ikbeldo
2019-03-25 06:59
串口发送到zigbee的无线传输模块,模块直接插在单片机的板子上,我现在考虑会不会因为是32.7KHz的晶振没有加12pf电容造成这情况

一周热门 更多>

相关问题

    相关文章