硬件设计

该核心板的USB插口有两个,一个是用于USB Slave的,可以用来做HID设备,把模拟STM32模拟为U盘等;另一个是USB Host设备,可以对插上的U盘的数据进行读写。

  • 图中J2是Micro-USB口,用于向整个板子供电,由于最大供电为500mA,所以板载资源耗电不能超过2.5W。
  • 上图中J1是USB Host设备,它需要向Slave(如U盘)供电,USB_POW用于控制是否供电。当USB_POW为低,Q1导通,5V的电源(来自)供到S5V上,为Slave供电。
  • 在调试USB-Host(读写U盘)功能时,只需要使用USB-Micro端口(Slave)供电,请拔掉P2插口中OTG_D+与USB_D+的短路帽及OTG_D-与USB_D-的短路帽。使之和USB-Micro端口(Slave)的通信断开。
  • 在调试USB-Slave功能时,需要使用USB-Micro端口(Slave)供电和通信。这时需要接上P2插口中OTG_D+与USB_D+的短路帽及OTG_D-与USB_D-的短路帽。

本实验用到了USB-Slave功能,所以需要接上P2插口中OTG_D+与USB_D+的短路帽及OTG_D-与USB_D-的短路帽。

另外,由于实验要用到串口打印功能,这里使用USART3进行通信,注意USART3的时钟树与所占用的GPIO PB10,PB11的时钟树的区别,通过USB2TTL转接板连接到PC上即可。

其中核心板上的PB10(USART3_TX) 连接到 USB2TTL小板上的RXD;核心板上的PB11(USART3_RX) 连接到 USB2TTL小板上的TXD

本实验实现的功能与效果:

  1. USB 自定义HID通信-发送,USBD_USR_Init函数(usbd_usr.c文件)中配置了SysTick中断,每隔一定时间自动发送报文(累加计数器的值)给Host;
  2. USB 自定义HID通信-接收,USBD_HID_DataOut函数(USBD_HID_cb回调函数,usbd_hid_core.c文件)中读取收到的值,并根据值设置LED1灯的亮/灭;
  3. 串口通信,main()函数中自动发送i的值回上位机,实现了打印调试信息。

STM32 USB开发(三) 基于F105RBT6核心板开发的自定义HID收发(FS)的更多相关文章

  1. 迅为IMX6核心板开发平台智能交通解决方案

    智能交通系统它是将先进的信息技术.数据通讯传输技术.电子传感技术.控制技术及计算机技术等有效地集成运用于整个地面交通管理系统而建立的一种在大范围内.全方位发挥作用的,实时.准确.高效的综合交通运输管理 ...

  2. STC8H开发(三): 基于FwLib_STC8的模数转换ADC介绍和演示用例说明

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  3. 【游戏开发】基于VS2017的OpenGL开发环境搭建

    一.简介 最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的).俗话说得好,“工欲善其事,必先利其器”.想学习图形 ...

  4. .net之微信企业号开发(三) 回调模式的接口开发

    一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信 ...

  5. spring boot + vue + element-ui全栈开发入门——基于Electron桌面应用开发

     前言 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时环 ...

  6. javaweb开发3.基于Servlet+JSP+JavaBean开发模式的用户登录注册

    转载孤傲苍狼博客http://www.cnblogs.com/xdp-gacl/p/3902537.html 1.层次比较分明的项目结构图

  7. 【iCore、iCore2 双核心板】EPCS 实验(SPI Flash)(基于Verilog语言)

    _____________________________________ 深入交流QQ群: A: 204255896(1000人超级群,可加入) B: 165201798(500人超级群,满员) C ...

  8. 关于imx6核心板qt系统U盘挂载

    在使用imx6核心板开发的时候,程序写到U盘,想通过U盘在板子上运行程序,U盘插到板子上后在minicom中有信息显示,但是无法找到挂载文件,/dev和/mnt下都没有找到相应的文件.后来百度后发现U ...

  9. 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(目录)

    本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以  SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...

随机推荐

  1. [工具]Hydra-爆破

    语法 hydra [[[-l LOGIN | -L FILE]                      [-p PASS | -P FILE]] |                      [-C ...

  2. 浅谈MySQL存储引擎选择 InnoDB还是MyISAM

    如果是一些小型的应用或项目,那么MyISAM 也许会更适合.当然,在大型的环境下使用MyISAM 也会有很大成功的时候,但却不总是这样的.如果你正在计划使用一个超大数据量的项目,那么你应该直接使用In ...

  3. 一个web应用的诞生(6)

    之前登录注册的功能都已经完成,但是登录成功回到首页发现还是白茫茫的一片,对的,title一直都写得博客,那么最终目的也是写出一个轻博客来,但是,在发表文章之前是不是要先记录一下登录状态呢? 用户登录 ...

  4. [COGS 755]山海经:线段树

    网上似乎这道题的题解很少?写一个吧 我跟这道题的渊源追溯到了上个学期刚刚学线段树的那一天... 当时线段树专题前边的题都是一些板子就不一会就水过了,然后就看到了最后一题的它:山海经 那一个上午,我竭尽 ...

  5. Flask【第11篇】:整合Flask中的目录结构

    整合Flask中的目录结构 一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import ...

  6. webpack命令:Module build failed(from ./node_modules/babel-loader/lib/index.js)/405/错误解决

    在项目中运行的时候出现报错,错误为Module build failed (from ./node_modules/babel-loader/lib/index.js) 解决方案: 控制台输入  np ...

  7. 软件的三大类型-单机类型、BS类型、CS类型

    单机类型:最开始的软件就是那些不需要联网的单机软件. CS类型:有的程序需要统一管理软件中使用的数据, 所以就将保存数据的数据库统一存放在一台主机中, 所有的用户在需要数据时都要从主机获取, 这时就分 ...

  8. 对云信SDK的研究

    1.我首先看了网易的云的各个产品 2.进行了分析发现产品还是很多的 3.主要对web的SDK进行了查看 4.主要有即时通信和聊天室 5.在githup上有网易托管的代码,我用git拉下来,并进行了查看 ...

  9. like sql

    like '%'+@parm+'%' ---用+号表示字符串连接 like '%@strKeyword%' --是查询某个字段 包含@strKeyword这个字符串

  10. string [线段树优化桶排]

    题意大概是给你一个字符串,1e5次修改,每次给一个区间升序排列或降序排列,最后输出这个字符串; 其实是个挺裸的线段树优化题;但是我没有意识去结合桶排,扑该..... 首先 1.40分算法 O(NMlo ...