CH372每次只能传64Byte,那么请问……?

CH372每次只能传64Byte,那么请问:如果要上传10KB的数据,在VB中用WriteData的命令该怎么实现呢? 如何把这些数据存成一个txt文件呢? 谢谢!!!

上位机读上传的数据用ch375readdata()函数,ch372writedata是上传机下传数据的函数。 你可以分几个步骤: 1。你在上位机创建一个.txt文件 2。下位机向上传端点写数据, 3。应用层调用ch375readdata()函数将CH372上传端点的数据取上来 4。将ch372readdata()读出来的数据写到你创建的txt文件里。 5。因为你的数据大于64,那要重复2,3,4的步骤,进行多次上传操作,只到数据传输完成。 6。传输完成的标志,你可以以最一个数据是否为64为准或者你以其他方式约定通知应用层传输已经完成。 7。关闭你所创建的文件。至此你上传一个文件的操作就结束了。 另ch372readdata函数一次可以读取4096字节。


多谢! 为什么重复执行下列代码,程序就会死掉呢?

If (CH375ReadData(0, mReadBuf, mLength)) Then ' 接收成功 List1.AddItem ("CH375ReadData return correct, length=" & mLength) '显示接收的数据长度 For j = 0 To mLength - 1 Temp = mReadBuf.mBuff(j) List1.AddItem ("DATA" & j & "are" & Hex(Temp)) '以16进制显示出数据 Next j Else ' 读操作失败 List1.AddItem ("CH375ReadData return error!") End If

另外,我们做的系统要求一次上传几万字节,用writedata可以实现吗?


程序会死,你跟踪一下在哪个函数上死掉的. 如果下位机没有上传完你CH375ReadData所要读取指定长度的数据,而且你没用ch375settimeout()设置读写超时的话也会死. 另,对于PC机而言,CH375WriteData()是PC机写数据函数(下传).CH375ReadData()是PC机读数据函数(上传)


在这条语句死掉的: If (CH375ReadData(0, mReadBuf, mLength)) Then ' 接收成功

另外,CH375settimeout()应如何引用? 每次上传的64Byte是不是都应立即从缓存中取走,放到txt文件里,然后下一批64Byte又放入缓存?


如果是在CH375ReadData()函数上死掉了,那就是你单片机没有上传数据或者你没有上传足够的数据.建议您从网上提供的工具CH372dbg.zip\debugch372先来调你的下位机程序,然后再与你自己的程序通讯. CH375settimeout()设置读写超时,在你打开设备后设置.设置完后,这样你就不会因为读不到数据而死机. 每次上传的64Byte取上来后什么时候写入到你的文件,应该是你程序自已定吧.这个流程在1楼已经写出来.


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