利用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();给注释掉

时间: 2024-10-12 23:54:45

利用STM32CubeMX来生成USB_HID_Mouse工程的相关文章

利用STM32CubeMX来生成USB_HID_Mouse工程【添加ADC】(1)

现在原来的基础上添加ADC的功能. 现在(利用STM32CubeMX来生成USB_HID_Mouse工程)基础上新增硬件 JoyStick Shield 游戏摇杆扩展板 与STM32F103C8的连接 目前使用 JoyStick Shield   STM32F103C8 X----PA1(ADC1_IN1) Y----PA2(ADC1_IN2) 好了我们现在STM32CubeMX来打开之前的工程 现在我们先设置ADC1_IN1 让我们来看其adc的默认配置 现在直接生成工程. 会发现在原来的工程

利用STM32CubeMX来生成USB_HID_Mouse工程【添加ADC】(2)【非dma和中断方式】

上回讲到怎么采集一路的adc的数据,这次我们来采集两路的数据. 现在直接修改原先的代码 /* Private variables ---------------------------------------------------------*/ uint16_t AD_Value_Buf[2]; uint16_t AD_X_Value = 0; uint16_t AD_Y_Value = 0; /* USER CODE END PV */ /* USER CODE BEGIN 3 */ fo

利用STM32CubeMX来生成USB_HID_host工程

修改时钟(备注这边使用25mhz的主晶振) 选择debug_level等级为3

试用bus hound来分析STM32CubeMX来生成USB_HID_Mouse工程

1 Bus Hound 6.01 capture on Windows Vista Service Pack 1 (x64). Complements of www.perisoft.net 2 3 STM32_HID_mouse 4 5 Device - Device ID (followed by the endpoint for USB devices) 6 (16) USB 2.0 集线器 7 (19) USB 输入设备 8 (21) HID-compliant device 9 (23

利用STM32CubeMX之SPI

现在我们继续使用STM32CubeMX来生成SPI工程.我们的硬件平台还是我们熟悉的STM32F103C8开发板. 设置时钟树中的配置 现在打开SPI的设置 如果想修改管脚的名字可以红色框中进行修改,修改后在生成代码将其来宏定义 现在来看看我们生成工程中代码 在 stm32f1xx_hal_spi.h中可以看到spi的操作函数.分别对应轮询,中断和DMA三种控制方式.我将先介绍轮询方式. HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *

使用STM32CubeMX生成RTC工程[闹钟中断2]

在上次使用STM32CubeMX生成RTC工程[闹钟中断]基础上实现周期间隔的闹钟 一些场合需要周期性的闹钟 现在为了方便设置每十秒来一次. 备注: 当然可以直接修改HAL库static HAL_StatusTypeDef RTC_WriteAlarmCounter(RTC_HandleTypeDef* hrtc, uint32_t AlarmCounter)将这个开发出来,但是本着能不修改底层库就尽然不修改的原则.好了废话少说上代码: /** *************************

利用Java动态生成 PDF 文档

利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那么目前最佳的解决方案,你可能会想到 iText ,对没错... iText+(Velocity / Freemarker)可以实现.不过据我熟悉,iText本身提供的HTML解析器还是不够强大,许多HTML标签和属性无法识别,更悲催的是简单的CSS它不认识,排版调整样式会让你头大的.不要失望,接下来

利用wsdl.exe生成webservice代理类

根据提供的wsdl生成webservice代理类 1.开始->程序->Visual Studio 2005 命令提示 2.输入如下红色标记部分 D:/Program Files/Microsoft Visual Studio 8/VC>wsdl /language:c# /n:TestDemo /out:d:/Temp/TestService.cs D:/Temp/TestService.wsdl 在d:/Temp下就会产生一个TestService.cs 文件 注意:D:/Temp/T

利用GCC编译器生成动态链接库和静态链接库

转载请标明:http://www.cnblogs.com/winifred-tang94/ 1.编译过程 gcc –fPIC –c xxx.c 其中-fPIC是通知gcc编译器产生位置独立的目标代码.链接的时候不通过拷贝来进行. 2.链接过程 gcc –shared –o libxxx.so xxx.o 经过编译链接就可以生成动态链接库,其扩展名为.so Eg. 还可以gcc –fPIC –shared -o libhello.so hello.c 举个例子: //Hello.h //hello