我需要有关BBB上的串行端口通信的帮助。如果我在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';
}