我希望你可能會使用這個GSM或GPRS調制解調器接口,假設你沒有指定應用程序。
摘要:GSM,GPRS調制解調器也使用AT命令接口與外部控制器進行通信。
在http://ww1.microchip.com/downloads/en/AppNotes/01373A.pdf
void UART_Buf(void)
{
ch=SCI2D;
if(rx_buffer[2] == 'O' && rx_buffer[3] =='K')
{
rx_buffer[5] = '\0';
msgindex=2; // code for OK
rx_wr_i=0;
}
if(rx_buffer[2] == 'B' && rx_buffer[3] =='U' && rx_buffer[4] == 'S' && rx_buffer[5] =='Y')
{
msgindex=3; // Code for Busy
rx_wr_i=0;
}
if(rx_buffer[2] == 'N' && rx_buffer[3] =='O' && rx_buffer[4] == ' ' && rx_buffer[5] =='C' && rx_buffer[6] =='A' && rx_buffer[7] =='R'&& rx_buffer[8] =='R' && rx_buffer[9] =='I' && rx_buffer[10] =='E' && rx_buffer[11] =='R')
{
msgindex=3; // Code for No Carrier
rx_wr_i=0;
}
if(rx_buffer[2] == 'E' && rx_buffer[3] =='R' && rx_buffer[4] == 'R' && rx_buffer[5] =='O' && rx_buffer[6] =='R')
{
msgindex=4; // Code for Error
rx_wr_i=0;
}
if(rx_buffer[2]=='+' && rx_buffer[3]=='C' && rx_buffer[4] == 'M' && rx_buffer[5] =='S')
{
msgindex=3;
}
if(rx_buffer[2]=='+' && rx_buffer[3]=='C' && rx_buffer[4] == 'M' && rx_buffer[5] =='E')
{
msgindex=3;
}
if(rx_buffer[2]=='+' && rx_buffer[3]=='C' && rx_buffer[4] == 'M' && rx_buffer[5] =='G' && rx_buffer[6]== 'R')
{
msgindex=6;
}
if(rx_buffer[2]=='E' && rx_buffer[3]=='R' && rx_buffer[4] == 'R' && rx_buffer[5] =='O' && rx_buffer[6] == 'R')
{
msgindex=3;
}
if(rx_buffer[2]=='+' && rx_buffer[3]=='C' && rx_buffer[4] == 'S' && rx_buffer[5] =='Q')
{
msgindex=7;
}
if(rx_buffer[2]=='+' && rx_buffer[3]=='C' && rx_buffer[4] == 'O' && rx_buffer[5] =='L'&& rx_buffer[6] =='P')
{
msgindex=8;
}
if(ch == '\r')
linefeed++;
}
和ISR
__interrupt void isrVsci2rx(void)
{
SCI2S1_RDRF = 0;
rx_buffer[rx_ack++]= SCI2D;
if(rx_ack>RX_BUFFER_MASK)
rx_ack=0;
UART_Buf();
rx_length++;
}
檢查msgindex和換行知道收到響應見詳細說明。
您是否想要與RS-232接口對話,或者您是否已具備此功能並需要捕獲UART字符串? – 2013-02-26 17:56:31
我不需要UART的幫助,我已經使其工作。我需要程序設計方面的幫助。 :) – TomiL 2013-02-26 17:59:39
AT命令集和協議非常簡單,您自己編寫代碼。 – Clifford 2013-02-26 23:38:06