1.概述
我们已经对USB硬件和数据的四种传输类型有了一个基本的了解。
控制传输(Control Transfers)
批量传输(Bulk Data Transfers)
中断传输(Interrupt Data Transfers)
同步传输(Isochronous Data Transfers):
下面我们通过一个例子看一下USB的具体工作过程。在此我们用一个比较实用的例子,就是把我们的板子用USB连接至PC,然后在PC端出现一个模拟串口,通过串口助手打开这个串口,然后实现数据的双向传输。最后我们聊一下很多工程师都会忽视的USB认证问题。
2.例程
我们打开ST的Cube库中的CDC例程:
STM32Cube_FW_F1_V1.8.0ProjectsSTM3210C_EVALApplicationsUSB_DeviceCDC_StandaloneMDK-ARMProject.uvprojx
这个例程用到USB的同时还会用到USART,USB从PC端收到数据后会转发到USART,从USART接收到消息会上传至PC。我们可以把USART的TX和RX短接,这样从PC端下发的数据会原样回传给PC端。
这个例程使用的硬件是STM3210C-EVAL,原理图可以在stmcu.org.cn找到。如果我们使用的是其它板子,就需要在这个工程基础上做一些改动。比如现在我们使用STM32F105RBT6,8M晶振,串口用PTA2,PTA3,那么我们的要做如下修改:
首先,修改使用的MCU:
然后修改时钟初始化部分。下图为STM32F105时钟模块示意图。USB工作需要48MHz的时钟。
(STM32F105xx Datasheet)
-
单片机
+关注
关注
6068文章
45037浏览量
652447 -
数据传输
+关注
关注
9文章
2026浏览量
66192 -
USB开发
+关注
关注
0文章
5浏览量
9818
发布评论请先 登录
在使用示波器探测时,你犯过这7大错误吗?

电商API常见错误排查指南:避免集成陷阱

工业人必读!USB对比PCIE延迟分析,选错接口你可能多花50%成本!

2.0 USB集线器CYUSB2304-68LTXI在重新枚举全速设备时出现错误怎么解决?
使用EZ-USB? SUITE构建img文件并决定将示例程序下载到开发板时,遇到一个名为“Bootloader未运行”的错误,怎么解决?
RTOS中的错误检查机制
【科普系列】LIN协议错误类型介绍

评论