STM32F103 系列芯片都自带了 USB,不过 STM32F103 的 USB 都只能用来做设备,而不能用作主机。既便如此,对于一般应用来说已经足够了。 下面利用 STM32 自生的 USB 功能实现一个虚拟串口 。
USB简介:
USB ,是英文 Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。 标准 USB 共四根线组成,除 VCC/GND 外,另外为 D+,D-; 这两根数据线采用的是差分电压的方式进行数据传输的。在 USB 主机上, D-和 D+都是接了 15K 的电阻到低的,所以在没有设备接入的时候, D+、 D-均是低电平。而在 USB 设备中,如果是高速设备,则会在 D+上接一个 1.5K 的电阻到 VCC,而如果是低速设备,则会在 D-上接一个 1.5K 的电阻到 VCC。这样当设备接入主机的时候,主机就可以判断是否有设备接入,并能判断设备是高速设备还是低速设备。
ST 提供了我们一套完整的 USB 驱动库,通过这个库,我们可以很方便的实现我们所要的功能,而不需要详细了解 USB 的整个驱动,大大缩短了我们的开发时间和精力。 本实验的 USB 部分就是移植 ST 的 Virtual_COM_Port 例程相关部分而来,完成一个 USB 虚拟串口的功能。
移植过程:
在官方网站上下载源文件。
新建USB文件夹