首页 > 代码库 > 利用STM32CubeMX来生成USB_HID_Mouse工程

利用STM32CubeMX来生成USB_HID_Mouse工程

 

 

硬件开发板:STM32F103C8

技术分享

软件平台

技术分享

技术分享

 

好了现在开始利用STM32CubeMX来生成我们的工程

1、新建工程

技术分享

选择MCU的型号

技术分享

选择选择时钟

技术分享

开启usb的模块

技术分享

 

 选择USB的类

技术分享

 

 配置时钟树(主要是设置usb的48Mhz)

技术分享

设置工程路径和编译环境

技术分享

打开工程

技术分享

我们现在在main.c进行修改

/* USER CODE BEGIN Includes */
#include "usbd_hid.h"
/* USER CODE END Includes */
  /* USER CODE BEGIN 1 */
  
  // HID Mouse
  struct mouseHID_t {
      uint8_t buttons;
      int8_t x;
      int8_t y;
      int8_t wheel;
  };
  struct mouseHID_t mouseHID;
  
  mouseHID.buttons = 0;
  mouseHID.x = 10;
  mouseHID.y = 0;
  mouseHID.wheel = 0;
  
  /* USER CODE END 1 */
  /* USER CODE BEGIN 3 */
 
  // Send HID report
    mouseHID.x = 10;
    USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&mouseHID, sizeof(struct mouseHID_t));
    HAL_Delay(1000);
  }
  /* USER CODE END 3 */

 编译下载后复位

在电脑设备管理中可以看到一个新的USB输入设备(到这部时候可以看到我们的STM32的USB枚举成功)

技术分享

可以看到我们鼠标光标移动

 

如果出现

***JLink Error: Bad JTAG communication: Write to IR: Expected 0x1, got 0xF (TAP Command : 10) @ Off 0x5.

将在HAL_MspInit()代码中 __HAL_AFIO_REMAP_SWJ_DISABLE();给注释掉

 

利用STM32CubeMX来生成USB_HID_Mouse工程