×

Внимание

Форум находится в режиме только для чтения.

Программный стек для управления GSM модулем (окончание банкета)

11 года 7 мес. назад - 11 года 7 мес. назад #4154 от mrcrook
писал код управления GSM модулем M72 для управления авто сигнализацией с возможностью запуска двигателя дистанционно по GSM каналу.
Делал так:

Пишем все данные из UART в память uart_rx, пока не придет \n или \r
   tmp = USART1->R;                   //прочитать принятый байт
	if(tmp == '\n' || tmp == '\r') {
		uart_rx_cnt=0;
		memset(uart_rx_buf,0,64);
	} else {
		uart_rx_buf[uart_rx_cnt++]=tmp;
		uart_rx = uart_rx_buf;
		RecognitionCommands(uart_rx); //Распознование ответов модема
	}
Пробуем распознать полученную строку
//Распознование ответов модема
void RecognitionCommands(char * uart_rx)
{
	if(strcmp(uart_rx,"OK")==0)
	{
		ok = 0;
	} else if(strcmp(uart_rx,"+CREG: 0,1")==0)
	{
		creg=1;
	} else if(strcmp(uart_rx,"+CREG: 0,0")==0)
	{
		creg=0;
	} else if(strcmp(uart_rx,"+CLIP: \"+79--------0\",145,\"\",,\"\",0")==0)
	{
		run=1;
	}
}
Ну а дальше уже можно делать все что угодно.

p.s.: после хардварного включения модуля очень желательно проверить включился он или нет послав команду AT (да и вообще желательно проверять в процессе работы), если не ответит пробуем включать снова.

Кому интересно могу выслать полный код. От помощи тоже не откажусь  ;) так как программированием на С/С++ занимаюсь буквально месяц, в коде бардак.
Время создания страницы: 0.035 секунд
Работает на Kunena форум