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

STM32使用HAL库配置USB端口


  • STM32CUBEMX配置
  • 配置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

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32使用HAL库实现USB端口串口模拟配置指南

    发表回复