打印

GD32 USB调试总结

[复制链接]
2174|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Bruing|  楼主 | 2019-1-31 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 USB通信都是基于中断完成的,主要使用两个中断:复位中断、数据传输中断。
沙发
Bruing|  楼主 | 2019-1-31 10:03 | 只看该作者
1.1 复位中断

      对于复位中断来讲,设备插入主机后,并设置连接,主机识别设备连接后,会复位设备。复位后使用0默认地址,对设备进行枚举,枚举过程其实就是获取设备的各种描述符。

     当设备被主机复位后,设备会对端点0的相关寄存器进行初始化。初始化完成后,设备就可以通过端点0进行控制传输,也就可以通过控制传输来进行传输各种描述符数据和设置设备的通信地址。

使用特权

评论回复
板凳
Bruing|  楼主 | 2019-1-31 10:04 | 只看该作者
1.2 数据传输中断

     对于设备的数据传输中断,基本上分为两种:in中断和out中断,在out中断中又可以通过寄存器来判断是否有setup被置位。其实in中断就可以对应usb中的in事务,out中断可以对应out事务,out中断中如果setup被置位,就是setup事务。在中断里,可以直接读取各个事务中的数据。当有一笔事务到来时,设备硬件自动识别“令牌包”和自动发送“状态包”,所以可以直接在中断中读取“数据包”了。具体数据是in、out、setup中的哪一个,设备会根据“令牌包”进行识别,来产生in中断或是out中断和setup标志。

使用特权

评论回复
地板
磨砂| | 2019-2-9 10:24 | 只看该作者
个人还没有玩过usb  感谢楼主分享

使用特权

评论回复
5
vivilzb1985| | 2019-2-17 13:43 | 只看该作者
这个在开发调试的时候要重点关注中断信号的处理的

使用特权

评论回复
6
comeon201208| | 2019-2-17 23:33 | 只看该作者
数据传输中断的是关键的设计

使用特权

评论回复
7
chuntian2016| | 2019-2-28 20:46 | 只看该作者
这个一般数据传输中断的应用比较多的

使用特权

评论回复
8
junpc| | 2019-3-18 10:41 | 只看该作者
chuntian2016 发表于 2019-2-28 20:46
这个一般数据传输中断的应用比较多的

GD32系列的单片机关于USB的开发,与STM32的USB开发有什么不同呢

使用特权

评论回复
9
lvben5d| | 2019-3-18 11:01 | 只看该作者
junpc 发表于 2019-3-18 10:41
GD32系列的单片机关于USB的开发,与STM32的USB开发有什么不同呢

F103系列  2者由于历史原因  寄存器都是一模一样的,所以应用也是一样的。  我目前用的是GD32E103系列,这个就跟F103 很不一样了。 谁做到了,有空交流。

使用特权

评论回复
10
chuntian2016| | 2019-3-22 23:25 | 只看该作者
不管怎么样,都是依靠中断来完成的

使用特权

评论回复
11
charlown| | 2019-3-23 18:55 | 只看该作者
lvben5d 发表于 2019-3-18 11:01
F103系列  2者由于历史原因  寄存器都是一模一样的,所以应用也是一样的。  我目前用的是GD32E103系列, ...

gd32 F350x = E103x otgfs ≈ STM32F401x otgfs, 看gd32手册,同时参照ST的RM0368 Reference manual

使用特权

评论回复
12
不明所以| | 2019-11-1 10:46 | 只看该作者
charlown 发表于 2019-3-23 18:55
gd32 F350x = E103x otgfs ≈ STM32F401x otgfs, 看gd32手册,同时参照ST的RM0368 Reference manual{:lo ...

你好,我使用gd32e103的mcu,利用官方的usb驱动库,只不过增加了一个接口,并初始化了该的端点,为什么该端点触发不了?

使用特权

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

本版积分规则

71

主题

308

帖子

1

粉丝