Иногда бессистемно отваливается 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 ++;
}
}
И чаще всего эта функция вызывается. Но иногда, когда у неё плохое настроение, она перестается вызываться, хотя диод передачи данных от модема мигает
чтобы это могло бы быть ?