简介

本文分享一款自己设计的STM32F405 USB HID小板,按照规定的外形尺寸,制作硬件成品,并调通USB HID通信,上位机能与板子进行USB双向通信。

硬件设计

硬件需求如下:

  1. MCU:STM32F405RGT6 (196KB RAM & 1MB Flash)
  2. 提供micro USB
  3. 一个ips 0.96寸TFT显示屏
  4. 提供SWD/UART调试接口
  5. 两个微动按键

软件设计

  1. FreeRTOS版本 V9.0.0

  2. ST USB库版本 V2.1.0

  3. 数据化接收发送流程:

  • 程序中,当USB接收到上位机发送下来的数据时,USB\STM32_USB_Device_Library\Class\hid\src\usbd_hid_core.cUsbHidReceiveComplete会标记数据接收完成, 接收的数据保存在USB_Rx_Buffer中。
static uint8_t  USBD_HID_DataOut (void  *pdev, uint8_t epnum)
{uint16_t USB_Rx_Cnt;if ( epnum != (HID_OUT_EP & 0x0F) )return USBD_FAIL;/* Get the received data buffer and update the counter */USB_Rx_Cnt = ((USB_OTG_CORE_HANDLE*)pdev)->dev.out_ep[epnum].xfer_count;/* Prepare Out endpoint to receive next packet */DCD_EP_PrepareRx(pdev,HID_OUT_EP,(uint8_t*)(USB_Rx_Buffer),HID_OUT_PACKET);/* 标记接收完成 */UsbHidReceiveComplete=1;return USBD_OK;
}
  • 在用户任务中,可以调用send_report将接收到的数据发送给上位机:
void send_report(void)
{uint8_t report_buffer[64];/* 将接收的数据再发送给上位机 */memcpy(report_buffer, USB_Rx_Buffer, 64);USBD_HID_SendReport(&USB_OTG_dev, report_buffer, 64);delay_ms(10);
}
  1. ips显示屏驱动中,支持汉字显示,字体取模方法:
  2. USB测试上位机:

成品图片

PCB预览:


成品图片:

开源地址

PCB和代码存放在Gitee,欢迎Start:
STM32F405_HID_Borad

[可获得的参考]

  1. FreeRTOS在STM32F405上的移植
  2. USB协议栈的移植
  3. 器件封装、硬件PCB的设计

STM32F405 USB HID软硬件参考设计相关推荐

  1. 《安富莱嵌入式周报》第290期:开源静电便携测试仪,开源音频功放,CAN高波特率设计,超级铁电产品,小米Vela系统,65W USB PD充电器参考设计

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  2. USB麦克风PCB板设计|SSS1623电路参考设计|简易USB麦克风方案设计

    SSS1623设计简易USB麦克风PCB板,桌面麦克风PCBA方案,USB话筒PCBA电路板,SSS1623电路参考设计,SSS1623框图如下: SSS1623/3S162直接免驱动兼容WIN200 ...

  3. wifi打印服务器方案USB共享打印机模块参考设计

    wifi打印服务器方案USB共享打印机模块参考设计 功能简介 BOJINGnet_USB打印服务器主板是一款基于MT7688或MT7628芯片组实现,支持WiFi ap模式sta模式.10/100M自 ...

  4. 一牛网:MTK芯片资料集锦四(datasheet,规格书,原理图,参考设计,软硬件资料,SDK,技术问题)

    为了方便MTK工作者的使用和便捷的查询资料,一牛网论坛把MTK系列芯片资料,整理集成了一个词条页面(http://bbs.16rd.com/citiao.html).资料不足之处,敬请谅解,小编正在不 ...

  5. Linux USB设备驱动程序设计 和 USB下载线驱动设计

    Linux USB设备驱动程序设计 和 USB下载线驱动设计 USB设备驱动模型 USB设备包括配置(configuration).接口(interface)和端点(endpoint),一个USB设备 ...

  6. Android USB HID整理

    概述 USB协议支持外设热插拔,这些外设分为许多不同类型,每一种设备类都具有相同的动作和类似的功能.比如显示器,鼠标,话筒等等. HID(Human Interface Device)类提供了人机接口 ...

  7. CSR8675学习笔记:USB HID通信

    为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板[淘宝链接:思度科技CSR开发板]. 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单号入 ...

  8. MFC USB HID

    MFC做USB HID上位机程序,背景不表,直接开始. 建立个Project: 执行Visual C++ Project|Settings,打开Link选项卡,在Category中选择Input,在O ...

  9. 耶鲁大学等机构提出的脑机接口软硬件协同设计,增加脑机的更大潜力

    脑机接口(brain -computer Interfaces, BCIs)或脑机接口(brain - machine Interfaces, BMIs)自从被医生和研究人员使用以来,已经为治疗神经系 ...

最新文章

  1. Virtual PC磁盘的最佳压缩方式
  2. JVM内存堆布局图解分析
  3. 面试项目亮点_怎样在面试中更好地介绍自己的项目经验?
  4. oracle复习笔记
  5. 服务器内存不认硬盘_服务器品牌有哪些?如何选择服务器?
  6. 项目服务器admin,django-admin创建项目与manage服务器的运行
  7. 「2012-12-29」3x3手机锁屏矩阵图像的组合数量
  8. 专访凯美瑞德研发总监孟江华:银行间市场操作系统的自主可控亟待加强
  9. 官网下载JAVA9,jdk9-jdk9下载 v9.0.4官方版下载-javaweb下载站
  10. JAVA毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析计算机源码+lw文档+系统+调试部署+数据库
  11. 耐福-NTP8849音频功放芯片有哪些功能?
  12. base64字符串转换为图片
  13. FreeBSD+gnome3详细安装指南
  14. 一些GIS地图的基础知识
  15. 使用Eclipse Memory Analyzer对Tomcat进行内存分析
  16. Android-蓝牙sco通话
  17. 基因数据分析主流软件与基因预测方法步骤-搬运工
  18. 印孚瑟斯被 IDC MarketScape 报告评为领导者
  19. c语言日历设计程序框图,C语言课程设计————写下流程图! 谢谢
  20. ecshop支付宝付款成功后台显示未付款

热门文章

  1. Linux 命令(194)—— ethtool 命令
  2. Android平台值得关注的开源项目
  3. autocad是计算机软件吗,AutoCAD软件属于计算机辅助设计软件()
  4. Matlab图标如何去掉图形框右侧和上侧的刻度线(也适用全框图)
  5. python俄罗斯方块教程_python tkinter实现俄罗斯方块 基础版
  6. 中医知识图谱可视化创建
  7. crt中 新建的连接存储在哪_SecureCRT上传和下载文件(下载默认目录)
  8. 【二】jupyter lab插件相关问题
  9. java微服务的理解
  10. camera调试:VCM马达驱动调试(DW9763)