前言

学习stm32 USB接口使用,学会用CUBE工具快速创建USB设备工程及调试,关于usb的相关知道请读者提前准备并学习,当然如果不想深究其中原理的话,跟着本文来操作就可以实现基于USB的设备开发了。需要提示的是,stm32在使用usb接口功能是一般需要在DP引脚上上拉一个1.5K电阻到3.3V(部分MCU内部会上拉)。

示例详解

基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。

本示例所用的最小系统板原理图:

  1. 从本节开始,关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
  1. 系统时钟树

  1. USB接口配置

  1. USB设备配置(选择Virtual Port Com,参数可保持默认)

  1. 引脚配置

  1. 中断配置(保持默认)

  1. 工程代码

    1. 在usbd_dcd_if.c 中加入如下图所示代码,实现串口回环功能,对应功能代码见USBD_CDC_IF.C中CDC_Receive_FS函数中 USER CODE 6 区间代码:

烧录默认代码,连上电脑可在电脑上看到对用的串口(前提是电脑上已安装了驱动程序,在程序包中会提供!):

  1. 到此,简单的USB_cdc设备演示demo就完成了,下面我们可以用PC上的串口工具时行测试一下代码功能:

可以看到,通过串口发送出去的内容成功地回回发到了PC工具,实现成功,在这个demo基础上,可以根据实际需要去增加功能,比如将接收到的数据发送给MCU的另一个串,或通过MCU的LCD的显示出来。

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!

文中资料下载,在公众号里给十三发消息:

下载|STM32基础系列教程23

关注十三公众号

STM32 基础系列教程 23 - USB_cdc相关推荐

  1. STM32 基础系列教程 50 – MbedTls

    前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站上指出,mbed ...

  2. STM32 基础系列教程 49 – Jansson

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  3. STM32 基础系列教程 48 – CJSON

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  4. STM32 基础系列教程 47 - MD5

    前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信 ...

  5. STM32 基础系列教程 46 – RNG

    前言 随机数发生器(RNG)是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.STM32F407自带RNG ,本节将给大演示STM32F4系列MCU中的RNG的使用.用 ...

  6. STM32 基础系列教程 45 - FSMC_LCD_Touch

    前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基 ...

  7. STM32 基础系列教程 44 - FSMC_LCD

    前言 TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为: Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD. STN- ...

  8. STM32 基础系列教程 43 – SRAM

    前言 STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合, 比如跑算法或者跑 GUI 等,自带的这些内存就不够用了.比如跑算法或者 ...

  9. STM32 基础系列教程 42 - SDMMC+Fatfs

    前言 本节我们将基于42讲 "STM32 基础系列教程 41 - SDMMC" 的基础来实现基于SD卡文件系统的文件操作. 示例详解 基于硬件平台: 正点源子的stm32f4 探索 ...

最新文章

  1. Python3 reversed 函数
  2. 如何评估深度学习模型效果?阿里工程师这么做
  3. 自己挖的坑自己填--JVM报内存溢出
  4. python多线程与GIL
  5. Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)
  6. 汽车租赁php参考文献,求租赁或者汽车租赁的英文参考文献
  7. es6 --- String.prototype.padStart
  8. git 常用的撤销操作
  9. php 结尾,PHP“意外结束”
  10. java游戏猿人时代_学习java编程就业前景如何
  11. Eclipse IDE for c/c++ 可以设置变量匹配高亮显示颜色
  12. FFmpeg学习(6)——视频拼接
  13. 算法:求数的幂次方powx-n
  14. CAD入门教程,基本设置,使用技巧
  15. 科研必备:LaTeX论文排版软件的简介,安装与使用教程
  16. 响应式2022英文企业官网源码,感觉挺有创意的
  17. 【Java实现】南京地铁导航系统的简单实现(三)—— 图形化界面的设计
  18. l36h android os,Sony Xperia Z(L36h)怎么刷魅族Flyme OS
  19. 八年开心网,它的是非功过都在这里了
  20. Python图片文字识别

热门文章

  1. JMeter和JMeterPlugin 下载安装
  2. Ubuntu - 安装 jdk 、配置 Java 环境变量、编辑 Test.java 文件并输出 Hello World!
  3. C++ 对TXT 的串并行读写
  4. 0127-python内置函数(一).abb
  5. canvas剪辑区域
  6. 转】MYSQL性能调优与架构设计之select count(*)的思考
  7. Linux下服务器模型 【转载】
  8. UA OPTI501 电磁波5 电磁场的基本物理量:电磁场的源与电磁场的强度
  9. R语言数据可视化 ggplot2基础4 位置与坐标系
  10. zookeeper动物园管理员学习笔记