第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

今天以SMT32F407ZGT6为例讲解如何用STM32MxCube生成USB程序---模拟鼠标:

MCU选型,这里就不讲了,直接说重点:

1,时钟必须首先配置好,才能进行下一步配置

打开外部时钟:外部陶瓷晶振

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

时钟详配置:

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

2,配置usb从机

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

3,调试模式,一定要这样配置,方便冷下载

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

4,选择USB_OTG_FS仅仅只用于从机,OTG全速

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

OTG高速不选择

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

5,配置usb从设备

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

均可修改

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

选择默认、

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

配置USB_FS接口

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

6, 生成代码、编译、下载

第三章:STM32MxCube生成USB程序---模拟鼠标(从机)---F407

这里关于怎么设置STM32MxCube不在详细叙述。

7,下载到开发板,电脑可以识别出这是一台鼠标设备,即默认用STM32MxCube生成的USB从机历程就是专门用于模拟鼠标的。

加入以下函数:则电脑的鼠标将不每次移动10个位置

uint8_t report[4]={0,10,0,0};

......

  while (1)
  {
  /* USER CODE BEGIN 3 */
HAL_Delay(100); //延迟 100ms
HAL_Delay(100); //延迟 100ms
HAL_Delay(100); //延迟 100ms
USBD_HID_SendReport(&hUsbDeviceFS,report,4);

}

这里就是在相同间隔时间模拟鼠标输出。