STM32开启USB CDC实现VCP功能

发布者:SereneSoul55最新更新时间:2024-09-30 来源: cnblogs关键字:STM32  USB  CDC 手机看文章 扫描二维码
随时随地手机看文章

实现了一个 USB CDC的功能,让板子接收电脑端的字元控制板上 LED 的亮灭

1. 打开 CubeMx, 搜索STM32F407VG, 选中找打的芯片, 然后点击右上角的 按钮.


2 设置晶振
    

3. USB 点选 Device(FS),这个是开启 USB 功能

5. 打开 usbd_cdc_if.c 档案,找到里头的 CDC_Receive_FS() 函数
编译程序并烧录到芯片,当板子上面的 USB 口插上电脑后出现了一个虚拟串口. 打开串口调试程序,选择好端口后发送字元 1 可以看到板上的 LED 亮起,串口调试程序收到 LED ON 信息,发送字元 0 可以看到板上 LED 熄灭,串口调试程序收到 LED OFF 信息。

关键字:STM32  USB  CDC 引用地址:STM32开启USB CDC实现VCP功能

上一篇:STM32 HardFault_Handler处理方法
下一篇:STM32 DAC 播放wav 语音

推荐阅读最新更新时间:2024-11-12 06:25

STM32低功耗设置
前两个月在公司做了一个低功耗项目,现在功耗最低10uA不到,平均功耗40uA左右,算是达标了。因为是公司产品,就不方便贴代码、原理图了,该产品是一个小模块,可以方便的嵌入到各种系统里面。跟原子哥他们卖的NRF2401类似,是一个读卡器。 做这个项目中间也请了技术支持,因为外围电路芯片的功耗一直降不下来,经过与对方的反复交流,对方提供了低功耗的测试结果、硬件方案、软件方案,经过修改测试,最终成为我们的产品,功耗比较满意。 硬件方案选择的是STM32,外加某公司的读卡芯片。前期完成了读卡等功能的开发,最后一项开发内容是最艰巨也是最困难的---低功耗。在开发过程中,从硬件设计上不断裁剪元器件,软件上不断精简代码,功耗最低
[单片机]
WS2812灯珠(二)-- STM32 SPI+DMA方式驱动
通过硬件SPI的可以很巧妙的模拟出WS2812的通信时序,用spi的8位数据模拟ws281x的一位数据。 要将系统时钟设置为56M,SPI分频数设置为8,则SPI的通信频率为7M,1s/7M≈143ns 即传输一位数据的时间约为143纳秒(ns) 3*143 = 429ns 5*143 = 715ns 符合WS281X芯片的通信时序。 11111000 high level (十六进制:0XF8)表示WS281X的1码 11100000 low level (十六进制:0XE0)表示WS281X的0码 程序头文件部分: 通过宏的方式定义了灯珠个数和WS281X的0码和1码。 #ifndef __WS2812_
[单片机]
学习STM32笔记3 GPIO设置
/******************************************************************************* 设置GPIO基本参数 *******************************************************************************/ void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; //根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器 GPIO_InitStructure.GPIO_Pin = GPIO_P
[单片机]
STM32学习笔记之-串口中断接收不定数据buff
今天说一下STM32单片机的接收不定长度字节数据的方法。由于STM32单片机带IDLE中断,所以利用这个中断,可以接收不定长字节的数据,由于STM32属于ARM单片机,所以这篇文章的方法也适合其他的ARM单片机。 IDLE中断什么时候发生? IDLE就是串口收到一帧数据后,发生的中断。什么是一帧数据呢?比如说给单片机一次发来1个字节,或者一次发来8个字节,这些一次发来的数据,就称为一帧数据,也可以叫做一包数据。 如何判断一帧数据结束,就是我们今天讨论的问题。因为很多项目中都要用到这个,因为只有接收到一帧数据以后,你才可以判断这次收了几个字节和每个字节的内容是否符合协议要求。 看了前面IDLE中断的定义,你就会明白了,一帧数据结束后
[单片机]
<font color='red'>STM32</font>学习笔记之-串口中断接收不定数据buff
STM32 系列MCU 不同型号的移植步骤解析
STM32 系列MCU 不同型号的移植! 第一步 更换启动文件: 第二步 修改宏定义: 图 1 或者修改stm32f10x.h 具体修改如下: 图2 第三步 修改系统主频率: 文件:system_stm32f10x.c 具体修改如下: 图 3 第四步 修改外部晶振源: 文件:stm32f10x.h 具体修改如下: 图 4 第五步 定时器需要根据以上修改的系统主频率进行对应的修改。 其他: 修改 Flash 地址 文件:misc.h 具体修改如下: 图 5 与以下配置一致: IAP 设置步骤 一、 IAP 工程设置 1、修改main 中的按键触发键 2、修改下载串口 二、 下载工程设置 1、修改程序入
[单片机]
<font color='red'>STM32</font> 系列MCU 不同型号的移植步骤解析
STM32 GPIO的8中种配置模式
STM32的GPIO引脚可以配置成8中模式: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 悬空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 这8中模式可以软件编程,IO端口位的基本机构如下图所示: IO口的这8中模式
[单片机]
<font color='red'>STM32</font> GPIO的8中种配置模式
浅谈STM32之SPI_FLASH之应用实例
SPI Flash 首先它是个Flash,Flash是什么东西就不多说了(非易失性存储介质),分为NOR和NAND两种(NOR和NAND的区别本篇不做介绍)。SPI一种 通信接口 。那么严格的来说SPI Flash是一种使用SPI 通信 的Flash,即,可能指NOR也可能是NAND。但现在大部分情况默认下人们说的SPI Flash指的是SPI No rF lash。早期Norflash的 接口 是parallel的形式,即把数据线和地址线并排与 IC 的管脚连接。但是后来发现不同容量的Norflash不能 硬件 上兼容(数据线和地址线的数量不一样),并且封装比较大,占用了较大的 PCB 板位置,所以后来逐渐被SPI(串行接口)N
[单片机]
关于STM32 ADC时采用DMA的一点疑问
手册上有这样的话:只有ADC1能够产生DMA请求,似乎是只有ADC通道1能采用DMA方式传输数据。 但是万利的开发板上的ADC例子,用的是ADC通道10,还用了DMA 方式传数据。 所以我猜测 “只有ADC1能够产生DMA请求”中提到的ADC1 并不是指ADC 通道1, 而是软件可配置的 ADC 通道的分类形式,可分为ADC1和ADC2. 我们可将 通道10(或其他)配置成ADC1 “模式”。通过函数 /* ADC1 regular channel10 configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_5
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved