USB开发的这个错误你犯了吗

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)

孟晚舟担任华为轮值董事长 华为三位轮值董事长确认
上一代搭载A13芯片与5nm工艺的麒麟芯片升级后的区别在哪?
为什么有人向AI泼冷水
华为芯片困境的转机来了?
Sonnet发布具有11个端口的雷电4扩展坞
USB开发的这个错误你犯了吗
英国制造新型硅基可持续使用60年的LED灯泡
机器人“刷机”将带来市场的一轮洗牌?
怎样将一个开源游戏移植给一款32位微控制器
全自动增压泵型号及选型
工业用户不建议用智能电容器的原因
三利谱产能爬坡良率不佳 2018年出现阶段性亏损
5G版iPhone的到来将会给我们带来什么样的惊喜
近日新闻:三星或关闭天津工厂;联电停止研发12nm以下工艺
剖析ST高精度MEMS倾角仪,竟然用上了机器学习?
AR+ADAS 如何改变汽车行业
RFID技术在新零售上可以如何应用上
STM32定时器基本计数原理解析
先进的清洗技术如何助力先进节点实现最佳晶圆良率
自力式压力调节阀的材料工作压力与温度介质