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() //发送完成回调函数;

  • 效果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值