CH374和CH340通信丢数据问题
  1. 硬件连接

    1.png

2.出现的问题:51单片机发送3520字节到STM32,前1500字节可以稳定的接收到,后面的字节就开始丢数据。

3.使用的接收函数

void usb_receivedata(u8 num)

{

u8 s,i,in_endp_addr,length=0;;

in_endp_addr=0x02;

for(i=0;i

{

s = WaitHostTransact374( in_endp_addr, DEF_USB_PID_IN, USB_Rx_tog1, 1000 );  

length=SPI2_USB_ReadOneByte( REG_USB_LENGTH );

if(s==0x14)

{

s=0;

Read374Block( RAM_HOST_RECV, length, &USB_Rxbuf[i*32] );

USB_Rx_tog1 = USB_Rx_tog1 ? 0 : 1;

}

}


}


     4.希望解决的问题:如何使CH374稳定的接收到数据??

请指教!谢谢!



有没有知道的回答下这个问题啊。这个搞稳定了,产品就可以出货了啊啊啊!!!


丢数据可能是单片机不停地发数据到340,340内部缓冲区满而374还没有取导致溢出,主要原因是374这边取数据可能太慢。你可以测试一下,主函数循环不停地发usb_receivedata(u8 num)但是不要处理数据,并对收到的数据计数,看能否完全接受完? 另外上面的SPI2_USB_ReadOneByte( REG_USB_LENGTH )放到0x14里面。


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