Other Parts Discussed in Thread: TXB0102
Hello,
Not able to get response of an AT commands in response buffer when baud rate is 115200 and frequency 1MHZ
code which i have written for an interrupt and for UART init is below
/*****************for uart initialization*********************
P3SEL |= BIT4+BIT5; // select p3.4 and p3.5 as TXD and RXD respectively
P3DIR |= 0x1A; // Set TX, RTS as output. P3.4 = 1 & P3.3 = 1
UCA0CTL1 |= UCSWRST ; // **Put state machine in reset**
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 9; // 1MHz 115200(see User's Guide)
UCA0BR1 = 0; //1MHZ 115200
UCA0MCTL |= UCBRS_1 + UCBRF_0; // + UCOS16; // Modln UCBRSx=0, UCBRFx=0,
//UCA0MCTL = UCBRS_0 + UCBRF_13+ UCOS16;
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
__no_operation();
UCA0IE |= UCTXIE;
UCA0IE |= UCRXIE; // Enable USCI_A3 RX interrupt
//__bis_SR_register(LPM0_bits + GIE);
__no_operation();
/******************************code for interrupt***********************
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
case 0: break; // Vector 0 - no interrupt
case 2: x = UCA0RXBUF; // Vector 2 - RXIFG
if((gsmResponseFlag == 1) && (gsmResponseIndex < 300)){
gsmRresponse[gsmResponseIndex] = x;
gsmResponseIndex++;
}
if((x == '{') ){ // check for starting of sting for server data
server_data_flag = 1; // if starting { detected then start storing data
server_data_index = 0;
}
if((server_data_flag == 1) && (server_data_index < SERVER_DATA_SIZE-1)){
server_data[server_data_index] = x; // store server data
server_data_index++;
}
//if(x == '}') // end of server string
if((x == '}'))
{
server_data_flag = 0;
server_data[server_data_index] = '\0';
server_data_index++;
SERVER_DATA_FUNCTION(); // parse data and get time,messege id etc..
}
break;
case 4: break; // Vector 4 - TXIFG
default: break;
}
return;
}
