zoukankan      html  css  js  c++  java
  • STM32 USB开发(三) 基于F105RBT6核心板开发的自定义HID收发(FS)

    硬件设计

    该核心板的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的值回上位机,实现了打印调试信息。

  • 相关阅读:
    在Eclipse或者STS中使用SVN插件
    SVN的忽略、版本回退、版本冲突(window)
    SVN的图标集
    HTML5+NodeJs实现WebSocket即时通讯
    import和require的区别
    正则表达式 金额验证
    vue 弹窗弹窗禁止滑动的方法 看了网上很多方法 都是扯淡 直接贴上代码
    uni-app关于小程序及app端第三方微信登陆问题
    用 async/await 来处理异步
    微信小程序 子组件调用父组件方法
  • 原文地址:https://www.cnblogs.com/charleechan/p/11799815.html
Copyright © 2011-2022 走看看