1.概述
我们已经对USB硬件和数据的四种传输类型有了一个基本的了解。
控制传输(Control Transfers)
批量传输(Bulk Data Transfers)
中断传输(Interrupt Data Transfers)
同步传输(Isochronous Data Transfers):
下面我们通过一个例子看一下USB的具体工作过程。在此我们用一个比较实用的例子,就是把我们的板子用USB连接至PC,然后在PC端出现一个interwetten与威廉的赔率体系 串口,通过串口助手打开这个串口,然后实现数据的双向传输。最后我们聊一下很多工程师都会忽视的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)
-
单片机
+关注
关注
6037文章
44558浏览量
635309 -
数据传输
+关注
关注
9文章
1891浏览量
64601 -
USB开发
+关注
关注
0文章
5浏览量
9712
发布评论请先 登录
相关推荐
常见的GND连接错误及解决方案
SQL错误代码及解决方案
socket编程中的错误处理技巧
高性能USB转串口适配器,助力你的嵌入式程序开发!让USB和串行接口轻松实现双向通信!
esp32-s2-usb-host-cdc示例程序接收错误怎么处理?
一文读懂CAN通讯错误帧

如何排查FPGA与USB之间的芯片通信问题?
【外设移植】USB键盘+M61开发板

评论