本帖最后由 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驱动 |
最近又没有stm32开发板申请了,什么时候安排?
目前新项目,MCU采用STM32F407VGT6,文件存在TF卡(SDIO),请问能否通过F4的USB把TF卡里面的txt和excel文件拷贝到U盘?哪个USB可以实现?
STM32F407ZGT6假死现象,看门狗不起作用
STM32F407VGT6使用PLL倍频后芯片会反复重启
CAN接收丢包
使用Cubeprogrammer无法连接、连接G431和一块H750的板子可以连上但是连另外一块H750的板子和F407的板子就直接报错,这个应该如何解决。
SPI 通信,既有单字节数据传输,又有多字节数据传输,该如正确使用 DMA?
SD卡log存储
STM32F413ZGT6的NRST需要接上拉电阻吗
STM32F4的串口在配置DMA之后,不能使用高波特率吗?
INT端点和BULK端点互不矛盾,但是一个端点只能是INT端点或者BULK端点,不能同时是两个。你是不是INT和BULK都设了同一个端点号?
USB-FS的速率是12Mbps,也就是1.5M字节每秒,刨去协议开销,至少得打个八折,这是BULK的速率,HID是INT的速率,也就是64k字节每秒,64字节每帧,每秒1000帧。
评分
查看全部评分
我确实不懂,你懂
端点你想配成INT就INT,像配成BULK就BULK,那条USB标准里规定了不能在一个接口里同时配INT和BULK?
问问题就先多做点准备工作,自己动动手,动动眼,不要别人说什么都理解不了
我又仔细看了 官方的cdc 例程 ,中断端点和bulk 端点 不在一个接口里面,不知道stm32是否可以实现一个接口上既有中断端点也有批量端点
那你能帮我看看 我修改的cdc 例程中 打开了int 端点 (int和bulk 是不一样的,bulk能实现回环)但是发不出数据来
本来CDC就是有一个INT和2个BULK呀
我没有自己写过全套的框架,都是用的ChibiOS和libopencm3的框架
两个接口,int 和bulk 不在一个接口下
不好意思,我搞错了。
是不是在一个接口下,取决于你怎么写的描述符,一个接口你可以附属多个端点都是没有问题的。
我的意思是stm32 usb 一个接口下能同时存在中断和批量端点么,我知道能存在好多端点啊,你到底懂不懂啊
我看你是真不懂,我就问你stm32能不能在一个接口下,同时存在中断端点和批量端点
你这样说有意思么?不觉得自己很傻
圈圈的书 早就看了啊 你以为我啥都没准备 那怎么移植程序 闹呢? 这论坛是不是都是白菜