USB
用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。
USB 接口支持设备的即插即用和热插拔功能
发展到现在已经有 USB1.0/1.1/2.0/3.0 等多个版本。目前用的最多的就是 USB1.1 和USB2.0,USB3.0 目前已经开始普及。STM32F103 自带的 USB 符合 USB2.0 规范。
USB驱动软件开发
usb_core(移植过程,代码一般不用修改)
usb_core.c
usb_croe.c 文件,该文件用于处理 USB2.0 协议。
usb_init.c
usb_init.c 文件,该文件里面只有一个函数:USB_Init,用于 USB 控制器的初始化,不过对USB 控制器的初始化,是 USB_Init 调用用其他文件的函数实现的,USB_Init 只不过是把他们连接一下罢了,这样使得代码比较规范。
usb_int.c
usb_int.c 文件,该文件里面只有两个函数 CTR_LP 和 CTR_HP,CTR_LP 负责 USB 低优先级中断的处理。而 CTR_HP 负责 USB 高优先级中断的处理。
usb_mem.c
usb_mem.c 文件,该文件用于处理 PMA 数据,PMA 全称为 Packet memory area,是 STM32内部用于 USB/CAN 的专用数据缓冲区,该文件内也只有 2 个函数即: PMAToUserBufferCopy和 UserToPMABufferCopy,分别用于将 USB 端点的数据传送给主机和主机的数据传送到 USB
端点。
usb_regs.c
usb_regs.c 文件,该文件主要负责 USB 控制寄存器的底层操作,里面有各种 USB 寄存器的底层操作函数。
usb_sil.c
usb_sil.c 文件,该文件为 USB 端点提供简化的读写访问函数。
usb_config(移植过程,重点修改)
hw_config.c
hw_config.c 文件,该文件用于硬件的配置,比如初始化 USB 时钟、USB 中断、低功耗模式处理等。
usb_desc.c
usb_desc.c 文件,该文件用于 Virtual Com 描述符的处理。
usb_endp.c
usb_endp.c 文件,该文件用于非控制传输,处理正确传输中断回调函数。
usb_istr.c
usb_istr.c 文件,该文件用于处理 USB 中断
usb_prop.c
usb_prop.c 文件,该文件用于处理所有 Virtual Com 的相关事件,包括 Virtual Com 的初始化、复位等等操作。
usb_pwr.c
usb_pwr.c 文件,该文件用于 USB 控制器的电源管理;
USB的初始化
USB_Interrupts_Config()
用于设置 USB 唤醒中断和USB 低优先级数据处理中断
Set_USBClock()
用于 配置 USB 时钟,也就是从 72M 的主频得到 48M 的 USB 时钟(1.5 分频)。
USB_Init()
用于初始化 USB,最主要的就是调用了 Virtual_Com_Port_init 函数,开启了 USB 部分的电源等。
这里需要特别说明的是,USB 配置并没有对 PA11 和 PA12 这两个 IO 口进行设置,是因为,一旦开启了 USB 电源(USB_CNTR的 PDWN 位清零)PA11 和 PA12 将不再作为其他功能使用,仅供 USB 使用,所以在开启了 USB电源之后不论你怎么配置这两个 IO 口,都是无效的。要在此获取这两个 IO 口的配置权,则需要关闭 USB 电源,也就是置位 USB_CNTR 的 PDWN 位,我们通过USB_Port_Set 函数来禁止/允许 USB 连接,在复位的时候,先禁止,再允许,这样每次我们按复位电脑都可以识别到 USB鼠标,而不需要我们每次都拔 USB 线。
USB 虚拟串口的数据发送过程,通过端点1来实现的usb_endp.c(void EP1_IN_Callback (void))
USB 虚拟串口数据的接收过程,通过端点3来实现的usb_endp.c(void EP3_OUT_Callback(void))
上一篇:STM32F407使用USB作虚拟串口出现黄感叹号
下一篇:stm32cubemx I2C读取AT24C16
推荐阅读最新更新时间:2024-03-16 16:04
设计资源 培训 开发板 精华推荐
- 2024年Automechanika Shanghai海量同期活动刷新历届记录,汇聚行业智慧,共谋未来发展
- 企业文化分享 如何培养稀缺的硅IP专业人员?SmartDV开启的个人成长与团队协作之旅
- 恩智浦发布首个超宽带无线电池管理系统解决方案
- 北交大本科生探秘泰克先进半导体开放实验室,亲历前沿高科技魅力
- 新帅上任:杜德森博士(Dr. Torsten Derr)将于2025年1月1日出任肖特集团首席执行官
- 边缘 AI 如何提升日常体验
- 苹果要首发!台积电宣布2nm已准备就绪
- AMD有望用上全新芯片堆叠技术:延迟大幅减少、性能显著提升
- 宁德时代发布10月战报
- 2024年10月电池行业:增长势头不减!