打印
[STM32F1]

STM32 USB 端点一IN传输出错

[复制链接]
1168|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laotui|  楼主 | 2015-4-22 12:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
自定义HID设备端点一中断传输,枚举正常out正常,主机一发起IN传输stm32就一直发没有报告ID的数据包
上位机收不到请教是什么原因,实在找不到了。

1.png (5.13 KB )

1.png
沙发
laotui|  楼主 | 2015-4-22 12:13 | 只看该作者
26是一个USB输入设备,25是HID自定义设备,数据应该是26 IN 00 后加数据
但在这个之后一直发25.1 IN 数据 端点一是IN端点 不知道是什么原因是配置不对还是发送时操作有问题。

使用特权

评论回复
板凳
laotui|  楼主 | 2015-4-22 12:17 | 只看该作者
各端点的包大小,接收发送缓冲区都设过了,端点的描述表看不太明白
        *((u16 *)(PMAAddr)) =  0x0080;//(u16)ENDP0_TXADDR;
        *((u16 *)(PMAAddr+2*2)) =         0x0000;
        *((u16 *)(PMAAddr+4*2)) = 0x0040;//(u16)ENDP0_RXADDR;
        *((u16 *)(PMAAddr+6*2)) =         0x8400;
       
        *((u16 *)(PMAAddr+16)) =  0x00d0;//(u16)ENDP1_TXADDR;
        *((u16 *)(PMAAddr+16+2*2)) =         0x0000;
        *((u16 *)(PMAAddr+16+4*2)) = 0x00c0;//(u16)ENDP1_RXADDR;
        *((u16 *)(PMAAddr+16+6*2)) =         0x8000;
       
        *((u16 *)(PMAAddr+32)) =  0x00f0;//(u16)ENDP2_TXADDR;
        *((u16 *)(PMAAddr+32+2*2)) =         0x0000;
        *((u16 *)(PMAAddr+32+4*2)) = 0x00e0;//(u16)ENDP2_RXADDR;
        *((u16 *)(PMAAddr+32+6*2)) =         0x8000;
不了解第二第四个数据是干什么用的,是不是和这些有关。

使用特权

评论回复
地板
laotui|  楼主 | 2015-5-10 00:53 | 只看该作者
移植官方库解决了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

456

帖子

1

粉丝