使用STM32CubeMX配置HS USB。
由于STM32F407内部只有FS USB PHY(全速),若要实现HS USB则需要通过ULPI接口外接一个HS USB PHY,虽然在STM32CubeMX中配置HS USB时可以选用内置PHY,但是内置PHY只能达到FS USB(全速)的速度。
此处使用的是USB3300,因为在淘宝上只有这一款= =。
之前买的一块USB3300调试过程中莫名其妙的就烧了,研究了一下微雪的那套板子的原理图之后,发现USB3300模块的5V是连到两个USB接口的VBus的,因为此处主要作为USB Device,所以不能再给5V供电。
配置STM32CubeMX:
都保持默认的就行,注意要改一下:
生成工程,编译,烧录,安装STM32虚拟串口驱动,一切顺利的话就可以在串口助手中看到一个虚拟串口。
而且选择的波特率无论是啥都能正常接收数据(不知道为什么)。
在main.c中添加:
需要包含usbd_cdc_if.h 以使用CDC_Transmit_HS(uint8_t* Buf, uint16_t Len);函数来设置数据起始地址和长度,随后USB中断将自动将数据拷贝到发送缓冲区,完成数据的发送。
/* USER CODE BEGIN Includes */#include "usbd_cdc_if.h"/* USER CODE END Includes */
uint8_t data[1024];for(uint16_t i=0;i<1024;i++){data[i]=i%10+0x30;}data[1023]='\n';CDC_Transmit_HS(data,1024);