STM32使用HAL库实现USB端口串口模拟配置指南
STM32使用HAL库配置USB端口
配置USB

勾选Device FS(全速模式)
详细配置USB_DEVICE
使用USB推荐使用外部时钟,对于USB_ FS而言其总线时钟一般为48MHz;
中间件中启用USB_DEVICE库,使用CDC类(Communication Device Class Virtual Port Com);其意为虚拟端口,可以模拟成虚拟串口。
参数设置主要与设备接口数量、电源、收发缓存等有关,一般默认即可;
设备描述主要为VID和PID以及其文本描述;
VID为厂商编码,可以在https://www.usb.org/
的 Developers 中找到,比如 1155 为 STMicroelectronics,如果你所在单位有自己的编码这里的VID和下面的厂商描述字符串就可以改成自己的;
PID为产品编码,你可以自行更改这个编码和其下面的产品描述字符串;
如果你用的是STM32F407系列等,那么就会看到两个USB
从STM32F40x的数据手册可知,STM32F407有两个OTG模块,分别是USB OTG FS和USB OTG HS。主要区别在于前者支持的最大通信速度为12Mbps(全速模式),后者支持的最大通信速度为480Mbps(高速模式)。
配置大体同上,下面是简单演示
值得注意的是,如果你配置了USB模块后,你的主频可能会被强制更改,记得调整定时器的预分频系数等
unsigned char buff[40] ={“USBtest\n\r”};
CDC_Transmit_FS(buff,sizeof(buff));
上面代码中最常处理的只有下面四个函数:
CDC_Control_FS() //来自主机请求的回调函数
CDC_Receive_FS() //接收数据回调函数;
CDC_Transmit_FS() //用来发送数据;
CDC_TransmitCplt_FS() //发送完成回调函数;
作者:mitumaooo