|
串口通信时从PC接受没问题,PC发送的时候进不了中断。
代码如下:
#include <msp430x42x.h>
void Init(void);
char Data[20],Buffer[20];
unsigned char i=0,j,flag=0;
void main(void)
{
// unsigned char i ;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
FLL_CTL0 |= XCAP18PF; // Configure load caps
Init();
_EINT();
while(1);
}
void Init(void)
{
P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD
ME1 |= URXE0; // Ena××e USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL1 ; // UCLK = SMCLK
UBR00 = 0x6D; // 1MHz 9600
UBR10 = 0x00; //
UMCTL0 = 0x03; // Modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
IE1 |= URXIE0; // Ena××e USART0 RX interrupt
P2DIR |= 0x10; // P2.4 output direction
}
#pragma vector = UART0RX_VECTOR
__interrupt void UART0RX(void)
{
if(flag==0)
{
if(RXBUF0==0xff)
{
flag=1;
i=0;
}
}
else
{
Data[i]=RXBUF0;
if (Data[i++]==0)
{
flag=0;
for(j=0;j<i;j++) Buffer[j]=Data[j];
}
}
}
|
|