delphi如何读取CH375WriteData()数据!

husion01 2009-06-11 05:23:20
近期在做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向单片机发送数据已经做成功了,就是不知道怎么接收,还有单片机怎样发送呢?请教各位了...

...全文
212 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
husion01 2009-06-12
  • 打赏
  • 举报
回复
没有人用过CH372上位机接收下位机数据吗:)
husion01 2009-06-11
  • 打赏
  • 举报
回复
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的目标,用哪种方法好呢?
请各位大虾帮忙~~
husion01 2009-06-11
  • 打赏
  • 举报
回复
上面读函数应该是CH375ReadData (iIndex :cardinal;oBuffer :pvoid;ioLength :plong):Boolean ;Stdcall; external 'CH375DLL.DLL';
厂商就只限于给了上面CH375ReadData ()这个函数可以接收数据,但我不知道怎么接收?用去delphi接收USB CH372芯片的应该知道:)
kampan 2009-06-11
  • 打赏
  • 举报
回复
接收肯定有与CH375WriteData对应的接受函数,CH372 USB芯片的厂商应该有相应的接口说明,至于单片机怎样发送,你就不用管了,那是他们的事。
使用方便,功能强大。 type FileCheckResult = (fcrNotExistend,fcrNotXSLFile,fcrValidXSL); //文件不存在,不是XSL文件,合法的XSL文件 TOLEExcel = class(TComponent) private FExcelCreated: Boolean; FVisible: Boolean; FExcel: Variant; //Excel程序对象 FWorkBook: Variant; //Excel工作簿对象 FWorkSheet: Variant; //Excel工作簿 工作表对象 FCellFont: TFont; //单元格字体对象 FTitleFont: TFont; // FFontChanged: Boolean; FIgnoreFont: Boolean; FFileName: TFileName; //********************************************自己添加*****************************// FCreateFromFile:Boolean; //指示是否打开已有文件 FExcelCaption:string; //用程序打开Excel的窗体标 //*********************************来自U_Report*****************************// FRCPrePage:Integer; //每页显示的记录数 FMax:Integer; //最大的数组个数 procedure SetExcelCellFont(var Cell: Variant); procedure SetExcelTitleFont(var Cell: Variant); procedure GetTableColumnName(const Table: TTable; var Cell: Variant); procedure GetQueryColumnName(const Query: TQuery; var Cell: Variant); procedure GetFixedCols(const StringGrid: TStringGrid; var Cell: Variant); procedure GetFixedRows(const StringGrid: TStringGrid; var Cell: Variant); procedure GetStringGridBody(const StringGrid: TStringGrid; var Cell: Variant); protected procedure SetCellFont(NewFont: TFont); procedure SetTitleFont(NewFont: TFont); procedure SetVisible(DoShow: Boolean); function GetCell( ARow,ACol: Integer): string; procedure SetCell(ACol, ARow: Integer; const Value: string); function GetDateCell(ACol, ARow: Integer): TDateTime; procedure SetDateCell(ACol, ARow: Integer; const Value: TDateTime); //*********************************************自己添加************************************// procedure SetCaption(ACaption:string);//设置打开文件后,Excel主程序的窗体标题 function GetCapiton:string;//返回打开文件后,Excel主程序的窗体标题 public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure C

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧