enviar comando at por puerto serial desde c

txenfsm

New member
Hola, estoy realizando un programa en c que se comunica con un dispositivo modem conectado a un puerto. No consigo obtener respuesta del comando at que envio le pongo el codigo para que puedan observear donde fallo,

hSerial = CreateFile(puerto, GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, 0, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    if(hSerial!=INVALID_HANDLE_VALUE)
{
DCB dcbSerialParams;
DCB dcbSerial = {0};

dcbSerial.DCBlength=sizeof(dcbSerialParams);
if (!GetCommState(hSerial, &dcbSerialParams))
printf("\nGetCommState error!");
else
            printf("\nGetCommState ok.");
        if(baudios=="2400")
                dcbSerialParams.BaudRate=CBR_2400;
        if(baudios=="4800")
                dcbSerialParams.BaudRate=CBR_4800;
        if(baudios=="9600")
                dcbSerialParams.BaudRate=CBR_9600;
        if(baudios=="19200")
                dcbSerialParams.BaudRate=CBR_19200;
        if(baudios=="38400")
                dcbSerialParams.BaudRate=CBR_38400;
        if(baudios=="57600")
                dcbSerialParams.BaudRate=CBR_57600;
        if(baudios=="115200")
                dcbSerialParams.BaudRate=CBR_115200;
        dcbSerialParams.ByteSize=8;
        dcbSerialParams.StopBits=ONESTOPBIT;
        dcbSerialParams.Parity=NOPARITY;


if(!SetCommState(hSerial, &dcbSerialParams))
printf("\nSetCommState error!");
else{
printf("\nSetCommState ok.");
        }
        char *szBuff="AT\r";
dwBytesRead = 0; 
            if(!WriteFile(hSerial, szBuff, sizeof(szBuff), &dwBytesRead, NULL))    //Escribe cada comando
          printf ( "WriteFile falló con error% d \n", GetLastError ());
       
        else{       
                  dwBytesRead = 0;
                  memset(szBuff,128,0);
                if(!ReadFile(hSerial, szBuff, sizeof(szBuff), &dwBytesRead, NULL))  //lee la respuesta de cada comando
                printf ( "Realfile falló con error% d \n", GetLastError ());
                else{
                     
                      szBuff[dwBytesRead] = '\0';
                     
                printf(" ReadFile: %s\n", szBuff);
                }
          }

Espero que me podais ayudar un saludo
 

Welcome to EDABoard.com

Sponsor

Back
Top