找回密码
 立即注册
楼主: scu***

8H8K64U USB OUT端点4 接收长度超过128不能触发中断?

[复制链接]

该用户从未签到

2

主题

12

回帖

64

积分

注册会员

积分
64
 楼主| 发表于 2023-4-20 20:06:42 来自手机 | 显示全部楼层
您的例子MaxPacketSize似乎是0x80,而且IN和OUT都一致;我这边是IN端点128,OUT端点255,可以请您再测试一下这样的吗?代码晚点才传得上来。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

3

主题

51

回帖

473

积分

中级会员

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

8h8k64uCDC基础接口256Buffer.zip

161.18 KB, 下载次数: 16

回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

12

回帖

64

积分

注册会员

积分
64
 楼主| 发表于 2023-4-20 22:07:45 | 显示全部楼层
按照您的代码取0x100,而不是0xff,终于成功了!多谢您的指点!
回复 支持 反对 送花

使用道具 举报

该用户从未签到

3

主题

51

回帖

473

积分

中级会员

积分
473
发表于 2023-4-20 22:12:20 | 显示全部楼层
成功了是好事,我也借你的问题学习了一把。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

12

回帖

64

积分

注册会员

积分
64
 楼主| 发表于 2023-4-21 00:43:52 来自手机 | 显示全部楼层
最后发现了根源,是usb_req_std里面又配置了一次OUTMAXP,导致usb_init的OUTMAXP没有起作用。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

3

主题

51

回帖

473

积分

中级会员

积分
473
发表于 2023-4-21 11:46:11 | 显示全部楼层
用一箭双雕代码改有点难度,很多时候搞不清哪个不能动,哪个该改,我试过几个分别删减做单一的CDC,最后还是那个虚拟示波器的代码最好,修改以后代码占用空间最少,衔接很清晰,就像操作串口一样。其他的那些不大好弄
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

12

回帖

64

积分

注册会员

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

主要是打算一转二,所以抄过来。现在发现DMA的带宽似乎很小,或者说调度不够合理,同时收发的话接收忙不过来(发送一包是256),RXLOSS标志位也没有置位,难搞。。
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-30 07:11 , Processed in 0.061005 second(s), 53 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表