USB
文章平均质量分 72
dancebit
我若成魔 佛奈我何
展开
-
USB模拟热拔插
USB设备断开之后,主机D+和D-都被内部电阻拉低,插回之后根据设备的上拉电阻确定设备接入。 拉低D+,D- 50ms, 初始化之前复位 GPIO在USB_Reset后会被USB的相关初始化函数设置。原创 2022-07-13 09:03:44 · 2211 阅读 · 0 评论 -
USB CDC虚拟串口复合设备
CDC包含一个控制接口和一个数据接口1、控制接口必要的有CM功能描述符和接口绑定描述符(IAD/Union)在我电脑上测试控制接口的中断端点也可以不需要,及控制接口端点数量可以为01.1、ACM功能描述符: 在虚拟串口中,控制接口需要处理ACM 功能描述符。如下是一个ACM描述符,描述了虚拟串口的一些类特定请求,比如可以设置和获取的串口的波特率、停止位等等。参考:STM32 之 USB 虚拟串口_rannar的博客-CSDN博客_stm32 虚拟串...原创 2021-11-22 19:47:37 · 7743 阅读 · 7 评论 -
USB 打印机设备
目录1、参考现有打印机的枚举过程2、接口描述符3、GET DEVICE ID4、发送数据测试1、参考现有打印机的枚举过程2、接口描述符如下,简单配置好接口及端点描述符,打印机设备就出来了#if 1//打印机接口 /************** Descriptor of Printer interface ****************/ 0x09, /* bLength: Int原创 2021-11-18 10:57:58 · 1841 阅读 · 1 评论 -
USB HID上位机测试(C#)
目录1、基本测试1.1、通过Bus Hound可以看到设备列表1.2、通过API获取到设备接口文件列表1.3、用BUS Hound收发测试2、C#上位机2.1、打开设备报告ReportID2.2、发送数据注意:测试:2.3、异步接收3、其他测试3.1、中断端点时间测试下位机这两天已经折腾出一个一二了,在配合上位机完整学习一下,下位机芯片是STM32F103VB1、基本测试1.1、通过Bus Hound可以看到设备列表...原创 2021-11-17 18:14:31 · 8658 阅读 · 11 评论 -
USB STM32配置
STM32端点缓冲区 缓冲区描述表也存在USB_BTABLE中,所以端点缓冲区地址不是从0开始。 缓冲区地址8字节对齐STM32 的USB中断状态寄存器IN端点事件当IN端点成功执行操作后,USB_ISTR = 0x8004,表示端点4(EP_ID=4) 发送方向 (DIR=0) 正确传输了(CTR=1)及发送传输完成后的事件。STM32的IN端点中断回调是数据上传到PC端成功的回调EPx...原创 2021-11-16 15:52:11 · 1285 阅读 · 0 评论 -
USB HID设备
玩通USB这个念头从毕业那会就一直想花时间搞搞了。至今零零散散基础学习了3轮,都是知难而退了,还记得上次是学到报告描述符就没兴趣再学下去了,上上一次是大概知道一下枚举的过程就转而干其他事了。学一个东西其实就不能被它吓到,得站在巨人的肩膀上先总览一下,不能从太基础的东西学起,因为花了一天又一天,时间会压的你很沉,慢慢遇到点难度就没放弃了。USB这块的基础代码库都算是比较完善的,从STM32的官网就能下载到例程,慢慢动手改参数,看看每个参数改了之后的变化,基本改了一遍就会大概清晰了。比如把一个鼠标改成一原创 2021-11-16 11:42:57 · 1184 阅读 · 0 评论 -
USB探索之路-基础
先说些大白话USB协议规定了传输的流程以及数据的定义,USB是DP,DM差分信号通讯,所以不能同时双向传输数据,那具体传输的时间就有主机来定,主机周期性的下发同步信号,告诉从机干活,并在告诉从机之后等待从机的应答及数据上传。设备:一个USB设备就是一个设备,有且仅有一个设备描述符,秒描述了设备基本信息,VID,PID,USB版本等。接口:一个设备可以包含多个接口。描述了接口是干啥的,比如鼠标,键盘、打印机啊这些。端点:每个接口又包含至少一个端点,端点就好比一个个存储仓,用..原创 2021-11-16 11:15:15 · 1056 阅读 · 0 评论