Мне нужна помощь с последовательным портом связи на BBB. если я вызываю эту функцию в цикле for, первый вызов работает, но следующий вызов не отправляет данные на последовательный порт. Терминал показывает «Ошибка при чтении данных». Нужно ли где-то сбрасывать данные?
Мой цикл for:
for(i=1;i<=maxInvNum;i++)
{
printf("Sorgulanan İnverter:%d ",i);
ParamRead(i,ParamNO,LS);
sleep(1);
}
Вызываемая функция:
int ParamRead(int i, int ParamNO, serialib LS)
{
char inv_sorgu[10];
char inv_string[100];
int Ret;
LS.FlushReceiver();
sprintf(inv_sorgu,"G%03d%03d\r",i,ParamNO);
printf("VOLKAN Sorgu: %s\n", inv_sorgu);
Ret=LS.WriteString(inv_sorgu);
if (Ret!=1)
{
printf("InvNo : %d, Error while reading data\n", i);
return Ret;
}
sleep(1);
Ret=LS.ReadString(inv_string,'\r',100,5000);
if(Ret>0)
{
printf("InvNo : %d ParamNo: %d Value:%5d\n", i, ParamNO, atoi(inv_string));
}
else
{
printf("InvNo : %d Read Error\n", i);
}
inv_sorgu[0] = '\0';
inv_string[0] = '\0';
}