This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F122的JTAG连接

Other Parts Discussed in Thread: MAX3232

  大家好!

我用122画的原理图,但是制板焊接调试时发现:单片机能在插仿真器时正常输出,

但当拔掉仿真器,输出就有问题,不知道哪里有问题,请大神们指点下,谢谢!


  • 我测试了复位脚为高,我与Hardware tools user guide中的参考图(如下)进行了对比,也进行了更改,去掉R1,将R4改为47K,将C14改为10nF,但还是不行,请帮帮忙,谢谢

  • 一般单步仿真时和断开仿真独立运行,有可能仿真相关io电平状态不一样,也有可能mcu运行频率不一样。

    不知道你的输出是点亮led还是其他复杂的通讯?

  • 我就是想 用串口通信实现引脚的高低电平变化,跟点亮LED是一样的,代码如下:

    #include <msp430x12x.h>
    int  UART0_RX_BUF;

    void delay(unsigned int DT)
    {
      unsigned int i;
      for(i=0;i<DT;i++){}
    }

    int main(void)
    {
      volatile unsigned int j,k=0;

      WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
      P3SEL |= 0x30;                            // P3.4,5 = USART0 TXD/RXD
      // P3DIR |=0xDF;        //设置P3.4 TX输入 P3.5 RX 输出    1101 1111
      P2DIR =0XFF;  // P2.0~2.5方向寄存器均为输出
      P2SEL =0X00; // 选择引脚为I/O功能
      BCSCTL1 |= XTS;                           // ACLK = LFXT1 = HF XTAL
      do
      {
      IFG1 &= ~OFIFG;                           // Clear OSCFault flag
      for (j = 0xFF; j > 0; j--);               // Time for flag to set
      }
      while ((IFG1 & OFIFG));                   // 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 = 0x40;                             // 7.3728Mhz 115200 - 64
      UBR10 = 0x00;                             //
      UMCTL0 = 0x00;                            // no modulation
      UCTL0 &= ~SWRST;                          // Initalise USART state machine
      IE2 |= URXIE0;                            // Enabled USART0 RX interrupt

       _EINT();              //打开中断
      while(1) ;

    #pragma vector=USART0RX_VECTOR
    __interrupt void usart0_rx (void)
    {
      P2OUT = 0x00 ;
      UART0_RX_BUF = 0 ;
     
      while(!(IFG2&UTXIFG0));
       TXBUF0=RXBUF0;
      UART0_RX_BUF = RXBUF0;
      if(UART0_RX_BUF==0x30)
        //P2OUT|= BIT2;
         P2OUT |= (0xff);   //00000100
      else
         //P2OUT&= ~BIT2;
       P2OUT &=(0x00);  

    }

  • 具体输出是什么问题?能不能详细描述一下。

    谢谢

  • 目的:用串口中断实现一个引脚的高低电平变化;

    连接:整个3.3V都是用LM1117-3.3V,串口通信用的TI的MAX3232;

    现象:IAR在线调试时,用串口助手给单片机发指令时,P2.2口能随助手发的指令变化电平;

          当断开仿真器,用5V电源供电时,再用串口助手发指令,P2.2电平不变化;我用示波器查看了,

         串口助手发送指令时,进出232的电平,发现经过232后,指令未进单片机,但是有仿真器时,

        串口能够工作,不知道为何是这种情况

  • 单片机的供电对么?晶振正常么?建议用一个简单的程序先看下430有没有开始工作。注意接4脚是板子供电,接2脚是仿真器供电。

  • 你好,单片机是通过LM1117-3.3V供电,没有问题,晶振用示波器看了,正常,插仿真器时,调试没有问题,但是一旦将仿真器拔出,用电源供电,单片机就不工作了一样,用IAR下载的,对F149下载,一点问题都没有,就是F122,很奇葩

  • 看你的描述,单片机仿真时和独立运行时用的供电不一样,有没有可能是电源的问题?

  • 先前接的是仿真器的pin2,我后来焊了另外一块板子,将pin2切断,连在pin4,板上现在所有3.3V都是由LDO供电,但是还是一样的情况。