原来STM32USB开发很复杂,在标准库上移植USB库需要修改不少地方,但是现在用HAL库,配合CubeMX就能快速生成USB工程了,这里用STM32F1来实现Virtual_COM_Port虚拟串口。原理图如下,STM32F1的USB是USB2.0全速总线,所以DP上拉,DM不接上拉。 二、CubeMX配置 (1)mcu使用STM32F103C8 (2)RCC里高速和低速时钟都选择外部晶...
在USB设备中(STM32主板),如果是高速设备,D+上接一个1.5K上拉电阻到VCC;如果是低速设备,D-上接入一个1.5k 上拉电阻到VCC。这样主机就能判断是否有设备接入,接入的设备是高速还是低速设备。 我们将STM32的USB口当高速设备使用:D+必须有一个1.5K上拉。 2.1、程序中无需配置硬件的设计:D+直接接了3.3V的上拉...
首先我先在网上查找了有关的资料,一般来说,STM32 USB 虚拟串口没法被识别可能有两种情况:堆栈设置太小,USB 没法完成初始化,在 CubeMX 上设置大一点。电脑端运用了 USB 分线器,把 USB 直接连接到电脑上。两种方法我都尝试了,没效。其次我就初始思考,是不是由于 STM32H750 的时钟主频太高了(400MHz)...
文章最后放上了本次CubeMX的工程和对应的虚拟串口代码。 配置过程: 1、点开CubeMX,新建工程,选择MCU。我用的是STM32F103VCT6。你们根据自己实际的MCU选择对应的型号以及封装格式。 2、选择系统时钟源。这边必须要配置,没配置系统时钟,不能生成正确的代码。 这里我使用的是外部晶振。(根据实际配置) 3、配置USB的上...
stm32 usb转串口的程序设计解析 - 全文-了解USB虚拟串口,为了在项目中用一下这个USB,调试方便一些,供电可直供。公司以后的产品开发就基于STM32这个平台,从contex_M3到contex-M4。不管速度、功耗、价格、采购的方便性都有竞争力,不想再修改了(除非它无法满足要求)。
不过ST为我们封装好了USB的栈代码,可以使我们在不了解USB的协议的情况,只需使用几个API就可以快速使用USB功能。 这篇我们以VCP(虚拟串口),相当于是一根USB转232的线,展示下VCP的一个DEMO,以STM32F103C8T6为例。 电路 STM32F103C8T6,只能用作设备模式,且工作在全速模式下,D+管脚必须要接一个1.5K的上拉电阻...
STM32的USB虚拟串口介绍 通常我们使用STM32进行串口通信会选择其硬件串口,但在某些情况下串口会不够用,这个时候就可以选择USB的虚拟串口,这样可以增加一个串口。 2023-03-23 10:10:46 请问拨码开关需要加上拉电阻吗? 拨码开关需要加上拉电阻吗?不加可以读取开关的状态吗? yeshard 2019-09-11 21:17:43 ...
stm32很多系列的芯片都带usb接口,而且cubemx也能生成多种功能的usb初始化代码,使得一般用户可以不用关注usb底层复杂的实现方式,直接使用HAL函数就能方便地实现usb通信。本节我们就来学习cubemx生成虚拟串口(USB virtual COM)的使用方法。 1)生成USB虚拟串口工程 ...
情况1、PC13与USB 虚拟串口能正常工作(PC13 ->LED)情况2、关掉USB初始化,PC13为推挽输出, PB12-...
打开usbd_dcd_if.c文件 找到CDC_Receive_FS()函数,这个函数如果USB虚拟串口数据收到就会被调用,我们在这个函数中将收到的数据在发回去,只需要添加CDC_Transmit_FS(Buf, *Len);这一句即可。 使用串口调试助手给它发数据: 6.3 虚拟串口重定向 打开usbd_dcd_if.c文件 ...