批量传输数据不全,请教老师

我用CH375A+CH452 DEMO板进行伪中断方式的批量传输。数据能够下传,但上传到计算机上的64字节数据只有最后的22个字节是正确的,前面的42个字节不知道是是什么数据,怎么来的。请各位老师指点迷津,先谢谢各位了。 上传的64个数据如下(上传的数据初始化为1,2,....64): Upload data length(Byte):64 114 0 0 7 8 12 0 0 8 0 0 64 7 64 0 15 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42 161 94 205 0 64 0 0 64 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

你可以先用我们的TEST程序测试下,看下是软件问题还是硬件问题.


我用Test程序测试通过了。 我有改了一下下位机程序中发送缓冲区和一些变量的存储类型,原来由data改为idata,上传上来的数据又多了7个,如下: Upload data length(Byte):64 107 0 0 7 8 12 0 0 8 0 0 0 0 64 0 15 35 161 94 1 0 64 0 0 2 0 0 0 0 0 0 0 0 0 64 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 此外再怎么试都没有效,感觉CH372A中的端点2的发送缓冲区中总有一些随机的数据,但我再加载上传数据前用 CH375_CMD_PORT = CMD_SET_ENDP7; Delay2us( ); CH375_DAT_PORT = 0x0e; 命令清除上传缓冲区中已有内容,但是没效果,不知道这到底问题出在哪儿。


你把你的程序可以发过来看下:tech@wch.cn


呵呵,谢谢hcn的帮助, 今天一大早,解决问题了。还是因为存储类型的问题: void LoadUpData( unsigned char data *Buf, unsigned char Len ) 我把unsigned char data *Buf变量说明中的存储类型data删除就好了。不过,我还不太清楚这是为什么,您能否给我解释解释? void LoadUpData( unsigned char data *Buf, unsigned char Len )为CH372EVT\PUB\DEMO\MCU_C51目录下的CH375451.C文件里的子函数.


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