Hjälp med C kod exempel för att läsa AT kommandon med PIC
Postat: 27 januari 2006, 11:03:03
Hej!
Letar efter exempel och exempelkod i (helst) c på hur man kan läsa av svarskommandon (ASCII tecken) som kommer in via UART. Har interruptstyrd UART som läser in en byte o lägger den i en array. Problemet är sen att försöka sålla ut vad som har kommit in på ett bra sätt.
Programmet ska användas till kommunikation mellan en PIC18F o en GPRS modul som kommuniserar via AT kommandon. Har funderat på nån variant av Switch och case satser men jag vet inte riktigt. som koden ser ut nu så förutsätter jag att jag vet vad som kommer ifrån modulen när jag har skickat ett kommando men jag vet inte riktigt om det e rätt tänk.
Tacksam för hjälp,
Del av koden för avläsning, i detta fallet letar jag efter OK
Letar efter exempel och exempelkod i (helst) c på hur man kan läsa av svarskommandon (ASCII tecken) som kommer in via UART. Har interruptstyrd UART som läser in en byte o lägger den i en array. Problemet är sen att försöka sålla ut vad som har kommit in på ett bra sätt.
Programmet ska användas till kommunikation mellan en PIC18F o en GPRS modul som kommuniserar via AT kommandon. Har funderat på nån variant av Switch och case satser men jag vet inte riktigt. som koden ser ut nu så förutsätter jag att jag vet vad som kommer ifrån modulen när jag har skickat ett kommando men jag vet inte riktigt om det e rätt tänk.
Tacksam för hjälp,
Del av koden för avläsning, i detta fallet letar jag efter OK
Kod: Markera allt
send2GPRS(atCommand[0]); Skickar AT kommando
/* While there is a new char in buffer or no timeout occured
continue reading RX buffer */
while (1)
{
for (j = 10; (j != 0) && !CharsInUSART2Buffer(); j--)
Delay1KTCYx(1);
if (CharsInUSART2Buffer() == 0)
break;
USART2BuffRead(&data); // reads one char from buffer
/* Search RX buffer for "OK", if found cmdOK = 1 */
if (data == 'K' && tempData =='O')
cmdOK = 1;
tempData = data;
}
/* If command received OK, send next command */
if (cmdOK == 1)
{ ......