近期在做delphi读取单片机的数据,利用CH372 USB芯片,但不知道怎样读取,比如,单片机向delphi发送buf[0]=0;buf[1]=1;buf[2]=2;buf[3]=;3buf[4]=4;delphi这边怎样通过CH375WriteData(iIndex :cardinal;iBuffer :pvoid;ioLength :plong)接收数据呢?
从delphi向单片机发送数据已经做成功了,就是不知道怎么接收,还有单片机怎样发送呢?请教各位了...

解决方案 »

  1.   

    接收肯定有与CH375WriteData对应的接受函数,CH372 USB芯片的厂商应该有相应的接口说明,至于单片机怎样发送,你就不用管了,那是他们的事。
      

  2.   

    上面读函数应该是CH375ReadData (iIndex :cardinal;oBuffer :pvoid;ioLength :plong):Boolean ;Stdcall; external 'CH375DLL.DLL';
    厂商就只限于给了上面CH375ReadData ()这个函数可以接收数据,但我不知道怎么接收?用去delphi接收USB CH372芯片的应该知道:)
      

  3.   

    procedure Tmain.Timer2Timer(Sender: TObject);//定时1ms
    var
      mDemoReq:array of byte;
      mLength ,i: cardinal;
    begin
    if(CH375ReadData(mIndex,@mDemoReq, @mLength))then
       begin
         statusbar1.Panels[2].Text:=inttostr(strtoint(statusbar1.Panels[2].Text)+1);
       end;
    end;
    1,上面是我用来测试的代码,但当我连通上位机跟下位机时,不管下位机有没有向上位机发送数据, statusbar1.Panels[2].Text隔5秒就自动加1,这是为什么?
    2,我最终要实现的目标是上位机发送询问数据给下位机时,下位机上传数据给上位机.
    3,我看了一下资料,上位机发送数据可以用上面的CH375ReadData(),也可以用上位机中断(不在怎么写),请问我要实现上面2的目标,用哪种方法好呢?
    请各位大虾帮忙~~