[求助] MSP430F248求助问题,急!!!

ikbeldo   2011-11-15 11:31 楼主
大家好,我用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)

LZ检查一下你的TX线时候连接是是你调试时接收端的RX线,再就是观测接收端的波特率设置
点赞  2011-11-15 14:05
谢谢楼上,硬接我已经看过了肯定没问题,请大家帮我看看代码有什么问题吗
点赞  2011-11-15 14:32
串口发送到那里?PC还是目标版,如果是目标版把TXD,RXD跳帽去掉试试,如果是PC的话运行的时候用手摸一下TXD,RXD看看PC是否有收到,可能是虚电平
点赞  2011-11-15 15:52
串口发送到zigbee的无线传输模块,模块直接插在单片机的板子上,我现在考虑会不会因为是32.7KHz的晶振没有加12pf电容造成这情况
点赞  2011-11-15 16:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复