STM32 的 USB 控制器
STM32F103的MCU自带USB从控制器,符合USB规范的通信连接;PC主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被USB外设直接访问。这块专用数据缓冲区的大小由所使用的端点数目和每个端点最大的数据分组大小所决定,每个端点最大可使用512字节缓冲区,最多可用于16个单向或8个双向端点。USB模块同PC主机通信,根据USB规范实现令牌分组的检测,数据发送/接收的处理,和握手分组的处理。整个传输的格式由硬件完成,其中包括CRC的生成和校验。 每个端点都有一个缓冲区描述块,描述该端点使用的缓冲区地址、大小和需要传输的字节数。 当USB模块识别出一个有效的功能/端点的令牌分组时,(如果需要传输数据并且端点已配置)随之发生相关的数据传输。USB模块通过一个内部的16位寄存器实现端口与专用缓冲区的数据交换。在所有的数据传输完成后,如果需要,则根据传输的方向,发送或接收适当的握手分组。 在数据传输结束时,USB模块将触发与端点相关的中断,通过读状态寄存
器和/或者利用不同的中断来处理。 USB的中断映射单元:将可能产生中断的USB事件映射到三个不同的NVIC请求线上:
- USB低优先级中断(通道20):可由所有USB事件触发(正确传输,USB复位等)。固件在处理中断前应当首先确定中断源。
- USB高优先级中断(通道19):仅能由同步和双缓冲批量传输的正确传输事件触发,目的是保证最大的传输速率。
- USB唤醒中断(通道42):由USB挂起模式的唤醒事件触发。
STM32 的 USB 控制器相关推荐
- 使用STM32的USB模块中后对USB缓冲区的认识
最近在使用STM32的USB模块开发个项目,还以为挺简单,结果搞了快两天才把USB的包缓冲区的访问搞定,在此做个小总结吧. STM32的USB模块包缓冲区有512B,但是在STM32的参考手册中的存储 ...
- STM32的USB外设初窥
这几天在考虑项目是用USB还是用以太网,但是我们用的平台STM32F103ZET6好像没有Enternet这个外设,所以就先考虑USB吧. USB外设的一大特点就是即插即用,之所以能够这样是因为USB ...
- 几种USB控制器类型:OHCI,UHCI,EHCI,XHCI
转载自:http://smilejay.com/2012/10/usb_controller_xhci/ 遇到过一些关于USB的东西(如下),一直没搞明白什么USB1.0/1.1/2.0/3.0之类的 ...
- STM32通过USB实现Bootlader/IAP功能
前沿: 最近在做STM32的USB Bootlader/IAP功能,也就是通过USB实现固件升级,本文介绍下实现的基本思路,希望对实现IAP的同学一个参考,改方法已经在产品中得到实际应用并验证是比较合 ...
- 攀达计算机usb控制器,[如何用注册表打开被屏蔽的USB插口.docx
[如何用注册表打开被屏蔽的USB插口 如何用注册表打开被屏蔽的USB插口我知道BIOS可以.但是学校的BIOS有密码.进不去,我想用注册表来改1.通过修改BIOS设置,可以直接屏蔽主板上的USB控制器 ...
- STM32模拟USB多点触控屏
STM32模拟USB多点触控屏 开发准备 STM32的USB官方例程库JoyStickMouse STM32F103RC Windows7 代码修改 1.usb_pwr.c RESULT PowerO ...
- 基于STM32的USB CAN收发器开发与设计
基于STM32的USB CAN收发器开发与设计 一.文章适合人群: 小型化企业,节约设备的购买投入: 有特殊功能需求的个人或企业(例如离线升级,数据抓包盒等): 技术开发爱好者. 二.USB CAN开 ...
- STM32系列微控制器入门介绍
文章目录 目的 基础需求 电路基础 编程语言 入门介绍 官方网站 型号选择 开发方式 开发工具 程序调试 固件烧录 资料说明 总结 目的 STM32是意法半导体(ST)推出的主要基于ARM Corte ...
- Zynq7000 USB2.0协议解析及USB控制器详解
USB 2.0规范及控制器 文章目录 USB 2.0规范及控制器 USB2.0 Univerasl Serial Bus USB Host USB总线 接口标准 总线信号 USB拓扑结构 数据流模型 ...
最新文章
- POJ - 3417 Network LCA+树上差分
- 《强化学习周刊》第36期:DDA3C、因果推理干预、逆强化学习
- AT网络抽象层的实现
- 使用httpHandlers进行url rewrite时,提示http 404 error 错误
- 【转载 译自MarketWatch 】 华尔街疯人日记 (二十五)
- 简单工厂 jdk源码解析
- UNIGUI下载文件
- 【测评】用这款神器2小时就撸完了1天工作量的代码!爽
- 【数据库】Mysql函数DATE_FORMAT() 显示日期/时间
- 宁德时代是前8个月全球最大电动汽车电池供应商
- mysql 或hive left join不加关联条件
- 【推荐】不到100行实现的全面NLP教程(pytorch+tensorflow)
- grid函数--Matplotlib
- 毕业设计实战:单片机智能温控风扇设计 带智能调速人体感应 论文仿真 源码 原理图
- DAY16-T1342面试题 05.08 -2022-01-31-非自己作答
- Environment 注入service 报错 null
- 【Git】查看改动文件清单
- Apache ab 测试使用指南
- 抽象类可以继承具体类吗?
- python中调用π的值_python如何调用math函数库求π值
热门文章
- Cocos2d坐标系具体解释
- python 时间序列prophet 模型分析_手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)...
- 亚马逊僵尸listing采集工具无主asin
- 【最新】windows电脑FFmpeg安装教程手把手详解
- 正则表达式中匹配开头关键词和结尾关键词
- Oracle 12c R1 Plug/Unplug 迁移PDB实验(1): 插拔 RAC PDB到 Non-RAC PDB
- 方差、标准差以及协方差
- uboot学习 0.1
- 600+ 道 Java面试题及答案整理(2021最新版)
- grep 多个关键字匹配