你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f407zgtx 自定义usb bulk 通信

[复制链接]
shuihehe 提问时间:2019-3-18 09:45 /
本帖最后由 shuihehe 于 2019-3-18 09:52 编辑

  最近在学习研究USB协议,研究一段时间了,看的云里雾里的,到头来只记得协议版本、拓扑结构、枚举过程、事务和四种传输方式等宏观整体的知识点。结合stm32自带的usb控制器模块,直观的了解一下usb传输过程。
   工具:cubemx、libusbk、mdk
   平台:win10 stm32f407zgtx
这里先提出几个问题,我在移植过程中自己无法解决的问题
1.cubemx中生成的cdc类工程中的中断端点是INT类型,这个端点需要报告描述符么?
2.批量端点和中断端点能不能同时存在,若能同时存在需要怎么修改?
3.stm32中的四种传输方式最大能支持到多少字节的数据?
4.stm32中usb通信速率如何测试?
我在帖子最后,上传了我移植的两个工程:一个是修改CDC类,实现了自定义bulk回环(这个工程有个问题,原先CDC中的INT端点,不能发送数据到PC),另一个是修改CUSTOM-HID类,实现了自定义的设备通信(这个工程有个问题,添加的bulk端点能够接收到数据,但是只能通过INT端点发送到PC)
工程: cdc 是修改的工程 cdc1024是pc驱动 hid是修改的工程 autousb是pc驱动

autousb.rar (15.25 MB, 下载次数: 157)
收藏 1 评论15 发布时间:2019-3-18 09:45

举报

15个回答
shuihehe 回答时间:2019-3-18 10:14:45
没有人么?
我是熊猫大仙 回答时间:2019-3-18 11:16:16
CDC的INT端点是控制端点,就是设置和读取波特率之类的控制参数的端点,两个BULK端点才是数据收和发的端点
INT端点和BULK端点互不矛盾,但是一个端点只能是INT端点或者BULK端点,不能同时是两个。你是不是INT和BULK都设了同一个端点号?
USB-FS的速率是12Mbps,也就是1.5M字节每秒,刨去协议开销,至少得打个八折,这是BULK的速率,HID是INT的速率,也就是64k字节每秒,64字节每帧,每秒1000帧。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

shuihehe 回答时间:2019-3-18 13:08:38
我是熊猫大仙 发表于 2019-3-18 11:16
CDC的INT端点是控制端点,就是设置和读取波特率之类的控制参数的端点,两个BULK端点才是数据收和发的端点
I ...

那你能帮我看看 我修改的cdc 例程中 打开了int 端点 (int和bulk 是不一样的,bulk能实现回环)但是发不出数据来
shuihehe 回答时间:2019-3-18 14:22:35
shuihehe 发表于 2019-3-18 13:08
那你能帮我看看 我修改的cdc 例程中 打开了int 端点 (int和bulk 是不一样的,bulk能实现回环)但是发不 ...

我又仔细看了 官方的cdc 例程 ,中断端点和bulk 端点 不在一个接口里面,不知道stm32是否可以实现一个接口上既有中断端点也有批量端点
我是熊猫大仙 回答时间:2019-3-18 16:51:08
shuihehe 发表于 2019-3-18 14:22
我又仔细看了 官方的cdc 例程 ,中断端点和bulk 端点 不在一个接口里面,不知道stm32是否可以实现一个接 ...

本来CDC就是有一个INT和2个BULK呀
我没有自己写过全套的框架,都是用的ChibiOS和libopencm3的框架
shuihehe 回答时间:2019-3-18 17:20:41
我是熊猫大仙 发表于 2019-3-18 16:51
本来CDC就是有一个INT和2个BULK呀
我没有自己写过全套的框架,都是用的ChibiOS和libopencm3的框架 ...

两个接口,int 和bulk 不在一个接口下
我是熊猫大仙 回答时间:2019-3-18 22:18:11
shuihehe 发表于 2019-3-18 17:20
两个接口,int 和bulk 不在一个接口下

不好意思,我搞错了。
是不是在一个接口下,取决于你怎么写的描述符,一个接口你可以附属多个端点都是没有问题的。
shuihehe 回答时间:2019-3-19 08:32:07
我是熊猫大仙 发表于 2019-3-18 22:18
不好意思,我搞错了。
是不是在一个接口下,取决于你怎么写的描述符,一个接口你可以附属多个端点都是没 ...

我的意思是stm32 usb 一个接口下能同时存在中断和批量端点么,我知道能存在好多端点啊,你到底懂不懂啊
我是熊猫大仙 回答时间:2019-3-19 08:56:07
shuihehe 发表于 2019-3-19 08:32
我的意思是stm32 usb 一个接口下能同时存在中断和批量端点么,我知道能存在好多端点啊,你到底懂不懂啊 ...

我确实不懂,你懂
端点你想配成INT就INT,像配成BULK就BULK,那条USB标准里规定了不能在一个接口里同时配INT和BULK?
问问题就先多做点准备工作,自己动动手,动动眼,不要别人说什么都理解不了
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版