参考了csdn上面的几篇文章,经历了一个多小时的调试排除找bug,终于成功了!
通过STM32cubeMx配置USB phy芯片
1.
2.
3.
4.
5.生成代码出来,打开工程,编译下载通过。
在上电之前,电脑得先安装ST的USB 虚拟串口驱动
点击前往下载-->STSW-STM32102 - STM32虚拟COM端口驱动程序 - STMicroelectronics
安装完驱动之后,芯片上电,再插上USB线,打开设备管理器,你就会神奇的发现这个东东:
那么恭喜你:成功了。
在main里面打一条发送语句测试一下:
CDC_Transmit_HS((uint8_t *)"Hello!\n",sizeof("Hello!\n"));
打开串口,波特率不用管,USB2.0_HS 是480Mbit/s ,还需要管什么115200么,嘿嘿!
到此就结束了;
最后总结下:
我的原理图是根据CubeMx生成管脚配置出来的,可以参考下微雪的原理图,我本来想买个开发板,结果自己的板就Ok,给公司省钱了。
USB2.0 DM DP 线需要阻抗匹配,过了PHy芯片出来的几根数据线 D0-D7,我没有做等长处理,只是做了50om的阻抗匹配。
不懂的同学可以看看这里的资料-->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博客
写的很详细,祝大家调试成功!