En estos momentos estoy sin mi PC, porque tengo conectada la de un amigo para probarla; supongo que para el miércoles ya conectaré la mía.
Podrías fijarte en
www.microchipc.com, si en las funciones para RS232 no está ya implementada una función para lectura de cadena a travez del RS232, sino habrá que hacer una rutina propia.
Creo que cuando envías un comando podés poner directamente "puts ("AT/n");" Con el "/n" ya incluido, tal vez sea más legible así. Es sólo cuestión de gustos.
En un if hacés "if (comando_recibido1 == "OK") error_comando = 1". Pero no podés comparar cadenas de caracteres de esa manera. Si no me equivoco la función para comparar cadenas de caracteres es STRCMP.
Y como simple detalle, creo que la mayoría de los lenguajes de programación (al menos lo sé de Pascal y Delphi), cuando una función se ejecutó bien el error es 0 (cero). Tal vez para unificar criterios podrías hacer lo mismo, es decir, si el if de comando_recibido es OK entonces poner "error_comando = 0".