Иногда бессистемно отваливается serialEvent, чтобы это могло бы быть ?
- Войдите на сайт для отправки комментариев
Пт, 19/07/2013 - 22:59
К Ардуино Меге прикручен GSM модем. Прикручен через согласователь уровней MAX232 и подключен к Serial2
Ардуинка ждет звонков ожидая вызова функции serialEvent2
#define GSMSerial Serial2 // Серийный порт к которому подключен GSM модем #define GSMSerialEvent serialEvent2 // функция события GSM модема #define GSM_BUFFER_SIZE 250 char GSMbuffer[GSM_BUFFER_SIZE]; int GSMBufer_curpoz = 0; void GSMSerialEvent(){ while(GSMSerial.available()){ char inChar = (char)GSMSerial.read(); if(inChar == '\n'){ continue; } if(inChar == 0){ continue; } if ( (inChar == '\r') || (GSMBufer_curpoz == (GSM_BUFFER_SIZE - 2))) { if(GSMBufer_curpoz == 0){ continue; } GSMbuffer[GSMBufer_curpoz] = 0; if(GSMBufer_curpoz == (GSM_BUFFER_SIZE - 2)){ Log("GSMbuffer is overflow"); } GSMEvent(); GSMBufer_curpoz = 0; continue; } GSMbuffer[GSMBufer_curpoz] = inChar; GSMBufer_curpoz ++; } }
И чаще всего эта функция вызывается. Но иногда, когда у неё плохое настроение, она перестается вызываться, хотя диод передачи данных от модема мигает
чтобы это могло бы быть ?