CH376ByteRead 函数实际长度返回值一直都是0?

void Ch376_Test(void)

{

  uint8_t send_buf[100];

  uint16_t ThisLen;

  uint32_t file_len;

  

  CH376FileOpen("/AAA.TXT");

  file_len = CH376GetFileSize();

  

  CH376ByteRead(send_buf,100,&ThisLen);

}

依据wch的例程编写了一个测试代码,文件大小都能读,也能都固定大小的数据出来,就有一个问题,实际长度返回值一直都是0,应该一开始都是100个,最后一个小于100才对,可能是什么原因呢?

无标题.png

您好,能在读取数据的时候打印一下“CH376ByteRead”函数里面的“s”吗?(如下图所示)

image.png


s的返回值0x1D,1DH USB_INT_DISK_READ 存储设备读操作,请求数据读出

无标题.png


王工,应该是我编调试环境的问题,“CH376ByteRead函数,使用step into单步执行,进入函数,再回来,就能返回正确的实际长度。如果使用step over一步执行过去,得到的实际长度返回值就是0。

也不知道为什么会这样。


CH376ReadBlock这个函数返回的值是读出的数据长度,最终返回的长度值就是多次读取s的和。可以使用串口打印,通过单片机打印返回的长度值


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