今天心血来潮想写点东西
做比赛这么久了,应该写点东西,一是为了给自己学的知识一个总结,二是可以锻炼自己的写作能力与表达能力,帮助他人避免自己走过的坑
stm32 USB VPC虚拟串口简介
很多stm32的开发版都带有一个usb接口,可以用cubeMx将其配置成一个虚拟串口,使用USB线就可以打印调试信息,省去了用TTL转USB的步骤,而且USB虚拟串口的速度和稳定性比TTL转USB要好,在开发中,这个工具可以帮助我们节省一个串口,同时获得更稳定的传输。
STM32F103C8T6_Black_Pill-1最小系统开发板
这个开发板性价比可谓是高到天际了,淘宝上遍地都是,它的led灯是接在PB12上的 ,我推荐这个板子作为实验用,它还有一个专门的网站,STM32F103C8T6-Black-Pill
它也是stm32duino项目的官方支持的板子,最近也在捣鼓STM32duino 的项目,查了很多资料,现在可以使用基本arduino库函数了,但是想开定时器什么的还是很麻烦,等有空了再写一个关于stm32duino 的专题,好好介绍一下,现在开始正题。
使用cubemx配置 生成Keil工程
选择mcu的过程就不再赘述,直接开始配置
DEBUG选择 SW模式
HSE高速总线始终改为外部晶振
开USB --DEVICE(FS)
选择 Communication Device Class(Virtual Port Com) 参数默认
时钟树配置
工程配置 IDE选择 MDK V5 。Stack Size 网上有人说要改大为0x1000,不然会出现设备无法识别黄色感叹号的问题,测试了不改也行,如果之后出现了这种情况可以将这里改大试试
第一栏里选择复制必要的库文件 第二栏里勾选将文件分为.c和.h
最后点击生成文件
注意 !
工程路径绝对不能有中文名,否则会报错,无法复制stm32的库文件到你的工程
安装STM32虚拟串口驱动
官网下载 next安装 STM32 Virtual COM Port Driver
keil中下载工程 测试串口
生成好的文件如下
在main.c 中添加这几行代码测试usb是否能正常通信 ,编译,下载到单片机上 复位
将micro usb线插到电脑上 此时应该能够在设备管理器中看到串口
打开串口调试助手 可以看到有数据发过来 至此USB虚拟串口就配置好了