Beaglebone Black串行通信问题

时间:2018-11-14 06:48:02

标签: serial-port beagleboneblack serial-communication

我需要有关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';
}

0 个答案:

没有答案