Skip to main content

CubeMx USB虚拟串口

今天心血来潮想写点东西 做比赛这么久了,应该写点东西,一是为了给自己学的知识一个总结,二是可以锻炼自己的写作能力与表达能力,帮助他人避免自己走过的坑

虚拟串口(VPC)

很多stm32的开发版都带有一个usb接口,可以用cubeMx将其配置成一个虚拟串口,使用USB线就可以打印调试信息,省去了用TTL转USB的步骤,而且USB虚拟串口的速度和稳定性比TTL转USB要好,在开发中,这个工具可以帮助我们节省一个串口,同时获得更稳定的传输。

Black_Pill

这个开发板性价比较高,淘宝上遍地都是,它的led灯是接在PB12上的 ,我推荐这个板子作为实验用,它还有一个专门的网站,

STM32F103C8T6-Black-Pill

它也是stm32duino项目的官方支持的板子,最近也在捣鼓STM32duino 的项目,查了很多资料,现在可以使用基本arduino库函数了,但是想开定时器什么的还是很麻烦,等有空了再写一个关于stm32duino 的专题,好好介绍一下,现在开始正题。

STM32F103C8T6_Black_Pill-1

cubemx生成

选择mcu的过程就不再赘述,直接开始配置

DEBUG选择 SW模式

sys

HSE高速总线始终改为外部晶振

rcc

开USB --DEVICE(FS)

usb

选择 Communication Device Class(Virtual Port Com) 参数默认

usbdevice

时钟树配置

时钟树

工程配置 IDE选择 MDK V5 。Stack Size 网上有人说要改大为0x1000,不然会出现设备无法识别黄色感叹号的问题,测试了不改也行,如果之后出现了这种情况可以将这里改大试试

project

第一栏里选择复制必要的库文件 第二栏里勾选将文件分为.c和.h

code_gen


最后点击生成文件

注意 ! 工程路径绝对不能有中文名,否则会报错,无法复制stm32的库文件到你的工程

STM32 VCP驱动

官网下载 next安装 STM32 Virtual COM Port Driver

测试

生成好的文件如下

keil_文件树

在main.c 中添加这几行代码测试usb是否能正常通信 ,编译,下载到单片机上 复位

添加语句

将micro usb线插到电脑上 此时应该能够在设备管理器中看到串口

串口安装好了的图

打开串口调试助手 可以看到有数据发过来 至此USB虚拟串口就配置好了

串口