大家好!
我用122画的原理图,但是制板焊接调试时发现:单片机能在插仿真器时正常输出,
但当拔掉仿真器,输出就有问题,不知道哪里有问题,请大神们指点下,谢谢!
houzi:
我测试了复位脚为高,我与Hardware tools user guide中的参考图(如下)进行了对比,也进行了更改,去掉R1,将R4改为47K,将C14改为10nF,但还是不行,请帮帮忙,谢谢
灰小子:
回复 houzi:
一般单步仿真时和断开仿真独立运行,有可能仿真相关io电平状态不一样,也有可能mcu运行频率不一样。
不知道你的输出是点亮led还是其他复杂的通讯?
houzi:
回复 灰小子:
我就是想 用串口通信实现引脚的高低电平变化,跟点亮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); }
Ken Wang:
回复 houzi:
具体输出是什么问题?能不能详细描述一下。
谢谢
houzi:
回复 Ken Wang:
目的:用串口中断实现一个引脚的高低电平变化;
连接:整个3.3V都是用LM1117-3.3V,串口通信用的TI的MAX3232;
现象:IAR在线调试时,用串口助手给单片机发指令时,P2.2口能随助手发的指令变化电平;
当断开仿真器,用5V电源供电时,再用串口助手发指令,P2.2电平不变化;我用示波器查看了,
串口助手发送指令时,进出232的电平,发现经过232后,指令未进单片机,但是有仿真器时,
串口能够工作,不知道为何是这种情况
HG:
回复 houzi:
单片机的供电对么?晶振正常么?建议用一个简单的程序先看下430有没有开始工作。注意接4脚是板子供电,接2脚是仿真器供电。
houzi:
回复 HG:
你好,单片机是通过LM1117-3.3V供电,没有问题,晶振用示波器看了,正常,插仿真器时,调试没有问题,但是一旦将仿真器拔出,用电源供电,单片机就不工作了一样,用IAR下载的,对F149下载,一点问题都没有,就是F122,很奇葩
灰小子:
回复 houzi:
看你的描述,单片机仿真时和独立运行时用的供电不一样,有没有可能是电源的问题?
houzi:
回复 灰小子:
先前接的是仿真器的pin2,我后来焊了另外一块板子,将pin2切断,连在pin4,板上现在所有3.3V都是由LDO供电,但是还是一样的情况。