一.USB虚拟串口原理简介
USB 虚拟串口,简称 VCP,是 Virtual COM Port 的简写,它是利用 USB 的 CDC 类来实现的一种通信接口。
我们可以利用 STM32 自带的 USB 功能,来实现一个 USB 虚拟串口,从而通过 USB,实现电脑与 STM32 的数据互传。上位机无需编写专门的 USB 程序,只需要一个串口调试助手即可调试,非常实用。
这里我们移植HAL库的标准底层驱动文件,实现USB的底层配置。移植USB工程需要包含三个文件夹:
USB_DEVICE:USB设备选择,这里我们选择CDC类,用来实现虚拟串口
USB_CORE:内核文件,基本不需改动
USB_APP:用户层代码编写,由用户自己编写,实现功能
由于USB协议规定,一次最多只能接收64字节数据,如果要传输的字节数是64整数倍,都要多传输一个0字节的数据包。而这里经过改写接收函数,可以实现任意长度数据的接收!!!非常方便。由于实现驱动的代码部分十分繁杂,就不一一列举,可参考正点原子的例程。正点原子的串口接收采用的是0x0a,0x0d判断的方式。这里我们仅对其接收函数进行改写,实现任意长度字节接收,且不需要结束字符判断。
|