参考了csdn上面的几篇文章,经历了一个多小时的调试排除找bug,终于成功了!
通过STM32cubeMx配置USB phy芯片
1.
![](https://img-blog.csdnimg.cn/img_convert/70a04a0d7afdd85eefe3c0f1afaf1d9b.png)
2.
![](https://img-blog.csdnimg.cn/img_convert/a1f96db04da80b7f83d6d676b7b96226.png)
3.
![](https://img-blog.csdnimg.cn/img_convert/bfedf4892a7de50593e09826eea2aad8.png)
4.
![](https://img-blog.csdnimg.cn/img_convert/d0b643462120dc8a93f425b486e211be.png)
5.生成代码出来,打开工程,编译下载通过。
在上电之前,电脑得先安装ST的USB 虚拟串口驱动
点击前往下载-->STSW-STM32102 - STM32虚拟COM端口驱动程序 - STMicroelectronics
![](https://img-blog.csdnimg.cn/img_convert/dd94bc850fbb25a664998d41baa688cd.png)
安装完驱动之后,芯片上电,再插上USB线,打开设备管理器,你就会神奇的发现这个东东:
![](https://img-blog.csdnimg.cn/img_convert/0da3f184a8afda5ec3eeeb4d6eb986b7.png)
那么恭喜你:成功了。
在main里面打一条发送语句测试一下:
![](https://img-blog.csdnimg.cn/img_convert/6ffa6d04abe90d4d96b2c906db4383d4.png)
CDC_Transmit_HS((uint8_t *)"Hello!\n",sizeof("Hello!\n"));
打开串口,波特率不用管,USB2.0_HS 是480Mbit/s ,还需要管什么115200么,嘿嘿!
![](https://img-blog.csdnimg.cn/img_convert/0d22f3b5085c497d9306121836bc5749.png)
到此就结束了;
最后总结下:
我的原理图是根据CubeMx生成管脚配置出来的,可以参考下微雪的原理图,我本来想买个开发板,结果自己的板就Ok,给公司省钱了。
USB2.0 DM DP 线需要阻抗匹配,过了PHy芯片出来的几根数据线 D0-D7,我没有做等长处理,只是做了50om的阻抗匹配。
![](https://img-blog.csdnimg.cn/img_convert/cb121bae6830d58a2782ad3e940e64ee.png)
不懂的同学可以看看这里的资料-->USB3300 USB HS Board - Waveshare Wiki
个人觉得也没啥资料,她给的历程跟资料我是看不懂的,USB3300就只是一个USB2.0的物理层芯片,我根据CubeMX里面生成的代码,也设置啥东西,编译一次就OK,重要的是去学习USB2.0协议吧。
我USB口用的是type_C的USB口,CC1为USB电流选择端,如果USBA->B口,两跟数据线的上拉电阻不对,那么电脑就识别不出是什么USB设备,这方面的资料查阅下USBFS HS的标准。
具体也可以看下这位老哥->(57条消息) STM32F407使用USB作虚拟串口出现黄感叹号_mickey35的博客-CSDN博客
写的很详细,祝大家调试成功!