上位机读数据不正确

你好!我上位机使用Delphi编写的,现在已经能实现从上位机向下传数据,但是从CH372向上传数据不正确,而且长度不对,数据长度是一个很大的数据,帮帮忙

下位机程序: CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); CH375_WR_CMD_PORT( CMD_WR_USB_DATA3 ); // 向USB端点2的发送缓冲区写入数据块 CH375_WR_DAT_PORT(10); // 首先写入后续数据长度,回传刚接收到的数据长度 for ( i = 0; i < 10 ; i ++ ) CH375_WR_DAT_PORT( ibuffer[i] );

上位机程序: Function mUploadData( iBuffer:array of byte;iLength:cardinal ):cardinal; var mDemoReq:COMMAND_PACKET ; mLength:cardinal; begin mDemoReq.mCommandCode := DEF_CMD_CLEAR_UP; // 连续上传数据块之前进行同步,实际是让单片机清除上传缓冲区的已有内容 mDemoReq.mCommandCodeNot :=$FF-DEF_CMD_CLEAR_UP; mLength := CONST_CMD_LEN; // 命令包的长度 if ( CH375WriteData( mIndex,@mDemoReq , @mLength ) ) then // 通过CH375发送命令包,成功 begin mDemoReq.mCommandCode := DEF_CMD_UP_DATA; // 连续上传数据块 begin mLength := iLength; // 数据块的长度,一次上传不超过4096字节 if ( CH375ReadData( mIndex,@iBuffer, @mLength ) ) then begin mUploadData := mLength; end else MessageBox( frmCH372.Handle, 'CH375ReadData 上传数据失败', mCaptionInform, MB_OK + MB_ICONERROR ); end else MessageBox( frmCH372.Handle, 'CH375WriteData 发送命令失败,DEF_CMD_UP_DATA', mCaptionInform, MB_OK + MB_ICONERROR ); end else MessageBox( frmCH372.Handle, 'CH375WriteData 发送命令失败,DEF_CMD_CLEAR_UP', mCaptionInform, MB_OK + MB_ICONERROR ); mUploadData:= 0; End;

用我们提供的test.exe测试可以吗?先用TEST.EXE测试,如果通过表示你的下位机程序是可以正常的,然后在调试你上位机程序


向USB端点2的发送缓冲区写入数据块 ,应该是CMD_WR_USB_DATA7,你写成CMD_WR_USB_DATA3了。 你可以先用DEBUG372调试,等调试成功了在自己写上位机。


只有登录才能回复,可以选择微信账号登录