1)实验平台:alientek NANO STM32F411 V1开发板2)摘自《正点原子STM32F4 开发指南(HAL 库版》关注官方微信号公众号,获取更多资料:正点原子
第三十五章 USB 虚拟串口(Slave)实验
上一章我们向大家介绍了如何利用 NANO STM32F4 的 USB 接口来做一个 USB 读卡器,本章我们将利用 STM32F411 的 USB 来做一个虚拟串口(VCP)。本章分为如下几个部分:
35.1 USB 虚拟串口简介
35.2 硬件设计
35.3 软件设计
35.4 下载验证35.1 USB 虚拟串口简介
USB 虚拟串口,简称 VCP,是 Virtual COM Port 的简写,它是利用 USB 的 CDC 类来实现的一种通信接口。
我们可以利用 STM32 自带的 USB 功能,来实现一个 USB 虚拟串口,从而通过 USB,实现电脑与 STM32 的数据互传。上位机无需编写专门的 USB 程序,只需要一个串口调试助手即可调试,非常实用。
同上一章一样,我们直接移植官方的 USB VCP 例程,官方例程路径:7,STM32 参考资料
STM32 USB 学习资料STM32_USB-Host-Device_Lib_V2.1.0ProjectUSB_Device_ExamplesVCP,该例程采用 USB CDC 类来实现,利用 STM32 的 USB 接口,实现一个 USB转串口的功能。35.2 硬件设计
本章实验功能简介:本实验利用 STM32 自带的 USB 功能,连接电脑 USB,虚拟出一个 USB串口,实现电脑和开发板的数据通信。本例程功能完全同实验 4(串口实验),只不过串口变成了 STM32 的 USB 虚拟串口。当 USB 连接电脑(USB 线插入 USB_SLAVE 接口),开发板将通过 USB 和电脑建立连接虚拟出一个串口(注意:需要先安装:光盘5,软件资料1,软件STM32 USB 虚拟串口驱动VCP_V1.4.0_Setup.exe 这个驱动软件),USB 和电脑连接成功后,DS1 常亮。
在找到虚拟串口后,即可打开串口调试助手,实现同实验 4 一样的功能,即:STM32 通过 USB 虚拟串口和上位机对话,STM32 在收到上位机发过来的字符串(以回车换行结束)后,原原本本的返回给上位机。下载后,DS0 闪烁,提示程序在运行,同时每隔一定时间,通过USB 虚拟串口输出一段信息到电脑。所要用到的硬件资源如下:
1)指示灯 DS0 、DS1
2)串口
3)USB SLAVE 接口
前面 3 部分,在之前的实例中都介绍过了,我们在此就不介绍了。接下来看看我们电脑 USB
与 STM32 的 USB SLAVE 连接口。ALIENTEK NANO STM32F4 采用的是 5PIN 的 MicroUSB
接头,用来和电脑的 USB 相连接,连接电路如图 35.2.1 所示:
图 35.2.1 MicroUSB 接口与 STM32 的连接电路图35.3 软件设计
本章,我们在:实验 4 串口通信实验的基础上修改,先打开实验 4 的工程,在 HARDWARE
文件夹所在文件件下新建一个 USB 的文件夹,同上一章一样,对照官方 VCP 例子,将相关文
件拷贝到 USB 文件夹下。
然后,我们在工程里面去掉一些不必要的代码,并添加 USB 相关代码,最终得到如图 35.3.1
所示的工程: