scutly 发表于 2023-4-20 20:06:42

您的例子MaxPacketSize似乎是0x80,而且IN和OUT都一致;我这边是IN端点128,OUT端点255,可以请您再测试一下这样的吗?代码晚点才传得上来。

晓奇 发表于 2023-4-20 21:32:01

1。配置描述里面需要把缓存大小改为:0x00,0x01,   //256字节;
2。读取FIFO的时候需要读取OUTCOUNT2 和OUTCOUNT1,已经超出单个寄存器范围;
3。发送的时候还是要以EP4IN的大小分包发送。
经过这样的修改,使用IN --128,OUT--256完全没问题

scutly 发表于 2023-4-20 22:07:45

按照您的代码取0x100,而不是0xff,终于成功了!多谢您的指点!{:4_197:}

晓奇 发表于 2023-4-20 22:12:20

成功了是好事,我也借你的问题学习了一把。{:4_188:}

scutly 发表于 2023-4-21 00:43:52

最后发现了根源,是usb_req_std里面又配置了一次OUTMAXP,导致usb_init的OUTMAXP没有起作用。

晓奇 发表于 2023-4-21 11:46:11

用一箭双雕代码改有点难度,很多时候搞不清哪个不能动,哪个该改,我试过几个分别删减做单一的CDC,最后还是那个虚拟示波器的代码最好,修改以后代码占用空间最少,衔接很清晰,就像操作串口一样。其他的那些不大好弄

scutly 发表于 2023-4-21 14:19:26

晓奇 发表于 2023-4-21 11:46
用一箭双雕代码改有点难度,很多时候搞不清哪个不能动,哪个该改,我试过几个分别删减做单一的CDC,最后还是 ...

主要是打算一转二,所以抄过来。现在发现DMA的带宽似乎很小,或者说调度不够合理,同时收发的话接收忙不过来(发送一包是256),RXLOSS标志位也没有置位,难搞。。
页: 1 [2]
查看完整版本: 8H8K64U USB OUT端点4 接收长度超过128不能触发中断?