一、测试平台:
MCU:STM32F429IGT6
工具:STM32CubeMX软件
编译软件:MDK

二、配置步骤
(1).打开STM32CubeMX软件,创建新的工程文件,先生成一个带有freertos操作系统的串口1例程,生成串口的例程这里不再详细介绍。
(2).配置USB_OTG_HS,由于电路板上USB管脚连接的是PB14和PB15,所以这里配置USB_OTG_HS,Internal FS Phy项配置Host Only,同时开启中断。

(3).配置USB_HOST,由于鼠标和键盘属于USB HID设备,则Class For HS IP选择Human Interface Host Class(HID),CMSIS_RTOS中的任务堆栈需要配置为512,默认为128会导致程序进入HardFault。

(4).配置完成之后,点击GENERATE CODE生成代码,打开工程文件,替换USBH_UsrLog(…)宏定义为

#define USBH_UsrLog(…) do {printf(“USBH_UsrLog: “) ;
printf(VA_ARGS);
printf(”\n”);
} while (0)


(5).编译完成之后,烧录到电路板上,插入键盘,可以枚举到键盘

(6).插入鼠标,可以枚举到鼠标

(7).可以看到,现在无论操作鼠标还是键盘,串口助手都不会有任何的信息输出,这是因为还没有添加鼠标和键盘的事件回调函数代码。在usb_host.c文件中添加以下代码

/* USER CODE BEGIN 1 */
void USBH_HID_EventCallback(USBH_HandleTypeDef *phost)
{HID_TypeTypeDef   type = HID_UNKNOWN;USBH_ErrLog("USBH_HID_EventCallback");type = USBH_HID_GetDeviceType(phost);switch(type){case HID_KEYBOARD:{HID_KEYBD_Info_TypeDef *keyboard_info;char ascii;keyboard_info = USBH_HID_GetKeybdInfo(phost);if( keyboard_info != NULL ){ascii = USBH_HID_GetASCIICode(keyboard_info);if( ascii != 0){USBH_UsrLog("%c",ascii);}}}break;case HID_MOUSE:{HID_MOUSE_Info_TypeDef *mouse_info;mouse_info = USBH_HID_GetMouseInfo(phost);USBH_UsrLog("mouse_info X%d, Y%d ,button %d %d %d",mouse_info->x,mouse_info->y,mouse_info->buttons[2],mouse_info->buttons[1],mouse_info->buttons[0]);}break;default:break;}
}
/* USER CODE END 1 */


(8).添加代码之后编译完成烧录到电路板中,插入鼠标,移动鼠标可以看到坐标点在变动

(9).插入键盘,点击键盘上的按键,可以看到点击键盘的数值。

利用STM32CubeMX软件生成USB_HOST_HID连接鼠标和键盘扫码枪相关推荐

  1. 利用STM32CubeMX软件生成USB_DEVICE_SD卡虚拟U盘

    一.测试平台: MCU:STM32F429NIH6 工具:STM32CubeMX软件 编译软件:MDK 二.配置步骤 (1).打开STM32CubeMX软件,创建新的工程文件,先生成一个的串口的收发例 ...

  2. 利用STM32CubeMX软件生成USB_HOST_CDC驱动ME909s-821ap(4G通信模块)

    一.测试平台: MCU:STM32F429IGT6 工具:STM32CubeMX软件 编译软件:MDK 二.配置步骤 (1).打开STM32CubeMX软件,创建新的工程文件,先生成一个不带操作系统的 ...

  3. 利用MDK软件生成bin文件的简单方法

    一.缘由: 之前学习Keil MDK-ARM软件,找了好久生成bin文件的方法,这次分享最简单的,所以写了此篇博文 二.操作步骤: 1.打开"Keil MDK-ARM软件" -找到 ...

  4. STM32 USB Host 同时连接多个设备样例(如鼠标和键盘)--原创

    STM32 USB Host 同时连接多个设备样例(如鼠标和键盘) 在网上搜了很多都是USB Host单独连接鼠标或键盘的样例, 而当前很多无线鼠标键盘都是并到一个USB口上的, 也就是同一个USB有 ...

  5. 如何将鼠标和键盘连接到PlayStation 4

    Believe it or not, Sony's PlayStation 4 works with a mouse and keyboard. This makes it more convenie ...

  6. 【STM32利用CuBe MX生成HID设备】1-熟悉软件以及生成一个8键的游戏控制器

    文章目录 前言 一.软件下载 二.软件安装 (一)\ STM32CubeMX软件安装步骤 (二)\ Dt HID生成软件安装步骤 三.软件界面介绍 (一)\ STM32CubeMX软件界面 (二)\ ...

  7. 利用Pajek软件批量处理excel数据,批量生成网络关系图

    利用Pajek软件批量处理excel数据,批量生成网络关系图 Pajek软件大家想必都不陌生,但是我很陌生,因为我用它不是进行网络分析,而是用它来画关系图(类似网络图).但是Pajek软件手工操作时一 ...

  8. 利用AnyLogic软件搭建多智能体模型验证Lanchester方程线性律和平方律

    利用AnyLogic软件搭建多智能体模型验证Lanchester方程线性律和平方律 写在前面 这篇文档是一篇备忘文档.记录了我使用AnyLogic搭建智能体群,并用其验证Lanchester方程线性律 ...

  9. 利用STM32CubeMX配置基于STMF32F407的FREERTOS操作系统控制直流电机速度和超声波测距实验

    前两周做基于STM32F407芯片的嵌入式系统设计的实验,主要完成利用超声波测距(电脑上用串口显示超声波所测距离,障碍物近于20cm时,使LED灯闪烁,并且可以通过串口更改报警距离)和利用编码器读取电 ...

最新文章

  1. vuex基础到模块化
  2. 【FPGA】SRIO IP核系统总览以及端口介绍(一)(User Interfaces 之 I/O Port)
  3. Python 技术篇-文件操控:文件的移动和复制
  4. Redis | 001能做什么?
  5. 关于ALTERA的FPGA的弱上拉问题
  6. 安装mysql显示有5.0_安装MySQL5.0时到如图这一步提示出错了,~
  7. Oracle 最后通牒:要 Java 8 更新先交钱!
  8. 请求并操作指定url处的xml文件
  9. 巧妙帮你保存个人隐私 WinRAR加密全攻略
  10. 不定积分求解(三大方法)
  11. 学校生均计算机台数统计表,学校计算机数量名称、型号、数量、发布情况统计表...
  12. Visual Prompt Tuning (VPT)
  13. React TypeScript react+ts 包下载
  14. [导入]PSP 经典游戏合集
  15. 微信小程序的疫情防控系统
  16. 黑白照片怎么变成彩色?分享一个转换小妙招
  17. 表格在线生成SQL工具
  18. 怎么修改服务器密码忘了怎么办啊,华为云怎么修改服务器密码忘记
  19. Flume实战-解决零点漂移-时间戳拦截器
  20. RizomUV展UV使用记要

热门文章

  1. Altium PCB总结
  2. 斐波那契数列相关简化4
  3. Xcode4.3.2下载地址迅雷高速下载lwxshow
  4. 今天教大家搭建成语闯关小程序
  5. android扁平风格图标下载,meeyo下载-meeyo扁平风格圆图标包下载v3.9.1 安卓版-西西软件下载...
  6. python官方中文文档上线_微软官方上线Python教程
  7. Android自定义滑动接听电话控件组
  8. Java 创建简单的WebService (转载自http://wl-ldy.iteye.com/blog/1055428)
  9. SIGIR | 对话摘要技术在美团的探索
  10. 回顾:CCAI 2016 PPT 集萃,MIT、微软、今日头条等实战经验分享