单片机开发,主函数没调用任何程序,串口一直收到00 0 FF之类的数据

本人是单片机小白,记录一些开发过程中的发现和心得。

最近在用MSP430F1232配合射频模块(Ti的CC1101芯片)开发无线收发程序,发现向板子里灌写程序后,串口助手sscom一直收到00 0 FF之类的数据,起初以为是电平转换芯片SP3232工作不正常,用万用表测量输出电压,没发现问题;于是清空主函数,只留下while(1)语句,问题依然没解决。排除硬件问题,只能说明串口没有正常工作,于是尝试调用串口初始化程序如下:

void InitUart(void)

{

  volatile unsigned int i;
  WDTCTL = WDTPW + WDTHOLD;                 // close WTD
  P3SEL |= 0x30;                            // P3.4,5 = USART0 TXD/RXD
  BCSCTL1 |= XTS;                           // ACLK = LFXT1 = HF XTAL

  do
   {
     IFG1 &= ~OFIFG;                           // Clear OSCFault flag
     for (i = 0xFF; i > 0; i--);               // Time for flag to set
   }
  
  while ((IFG1 & OFIFG) != 0);              // OSCFault flag still set?

  BCSCTL2 |= SELM_3;                        // MCLK = LFXT1 (safe)
  ME2 |= UTXE0 + URXE0;                     // Enabled USART0 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character
  UTCTL0 |= SSEL0;                          // UCLK = ACLK
  UBR00 = 0x74;                             // 3.58Mhz/9600 - 372
  UBR10 = 0x01;                             //
  UMCTL0 = 0x00;                            // no modulation
  UCTL0 &= ~SWRST;                          // Initalize USART state machine
  IE2 |= URXIE0;                            // Enabled USART0 RX interrupt

   __bis_SR_register(LPM0_bits + GIE);      // Enter LPM0 w/ interrupt
}

然后发现串口助手停止收到奇奇怪怪的数据。

问题终于解决,但是真相没有大白,为什么上电以后,芯片会自己向串口发送数据呢?以后打算有时间再好好研究。

你可能感兴趣的:(MSP430)