大家好!
我用122画的原理图,但是制板焊接调试时发现:单片机能在插仿真器时正常输出,
但当拔掉仿真器,输出就有问题,不知道哪里有问题,请大神们指点下,谢谢!
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.
我就是想 用串口通信实现引脚的高低电平变化,跟点亮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);
}