目录

以沁恒的CH582芯片为例,主机模式下,在R8_USB_INT_EN中可以使能RB_UIE_DETECT位,由中断来提醒检测USB设备的接入和移除;从机模式下,USB设备没有这样的中断功能(上述寄存器的同一位被用来判断USB总线复位事件)。如何在从机模式下检测有没有接入到USB总线呢?

方法一:走硬件检测。比如将USB接口的外壳接到GPIO上,内置上拉,启用一个GPIO中断,接入到主机时该引脚上产生了低电平则判断为设备接入。再比如USB电源线由电阻分压,接到ADC引脚上,检测到电压则判断为设备接入。

方法二:全速USB设备总线上,每ms都要产生一个帧起始信号SOF。设备开启中断后,可以在中断中判断是否收到SOF,能收到表示已连接上;设置一个定时器,距离上次SOF中断超时一定时间判断为断开。该方法需要添加些许代码,增加一层逻辑,如果懒得写可以参考方法三。

方法三:枚举进行到最后一步SET_CONFIG,可以判断为设备连接;断开连接时会进“挂起”,故也可以在解析setup包和判断挂起的位置判断连接和断开。注意枚举过程中USB总线上也会有两次reset,会进设备“挂起”case,建议以判断设备接入为准。

最新文章

  1. iOS,几种设计模式
  2. HDU1005
  3. 三天学会HTML5——SVG和Canvas的使用
  4. dynamic获取类型可变的json对象
  5. iOS 查找文件、遍历文件系统
  6. UI5_HomeWork
  7. Bubble Sort 冒泡排序
  8. [Cycle.js] Generalizing run() function for more types of sources
  9. Uva11183-Teen Girl Squad(有向图最小生成树朱刘算法)
  10. Zxing中文乱码解决方法
  11. JSP 入门
  12. POJ 3261 可重叠k次最长重复子串
  13. 19,CSS 滤镜
  14. docker异常问题解决
  15. Hive表生成函数explode讲解
  16. IndentityServer4
  17. IntelliJ IDEA运行eclipse的web项目报错的问题
  18. vue-router的简单理解
  19. linux升级openssh到7.9
  20. 如何编辑PDF文件,怎么使用PDF裁剪页面工具

热门文章

  1. CSS中知
  2. 探究BrainSplit-集群脑裂
  3. angular + ng-zorro 表格后台分页及排序功能实现,angular + ng-zorro 表格排序不起作用解决办法
  4. angular11报错Can't bind to 'ngForOf' since it isn't a known property of 'tr'. 三种排查办法以及解决方案
  5. 创建进程的多种方式、多进程实现TCP并发等知识点
  6. vh 存在问题?试试动态视口单位之 dvh、svh、lvh
  7. c++代码实现中时间复杂度的不断优化
  8. 【学习笔记】XR872 GUI Littlevgl 8.0 移植(显示部分)
  9. STL序列式容器使用注意、概念总结
  10. 在Flask中构建API接口的相关概念