MG32F10x Standard Peripherals Firmware Library
USB_HID_KeyBoard example
  *************** (C) COPYRIGHT 2020 - 2023 megawin Technology ***************
  * @file    USB/USB_HID_KeyBoard/readme.txt 
  * @author  megawin Application Team
  * @version V0.1.10
  * @date    05-January-2023
  * @brief   Description of the USB USB_HID_KeyBoard example.
  ******************************************************************************
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, MEGAWIN SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM
  * THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  ******************************************************************************
Example Description

This example describes how to use USB module to implement a keyboard.

In this example, Main clock is from PLL clock and it is configured at 96MHz. The PLL clock is based on 8MHz HSE. APB1 and APB2 clock is from Main clock.

After running this example, LED1 and LED2 will light up, and when connected to the computer via USB, you will see a keyboard device added in the device manager. The KEY1 key represents the Ctrl key on the left of the keyboard, and the KEY2 key represents the 'A' key on the keyboard. LED1 represents the Caps light for the keyboard. When the computer sleeps, the USB will enter the Suspend state and LED2 will go out; when the computer is woken up, the USB will resume and LED2 will light up. In addition, pressing the KEY2 button in the Suspend state can remotely wake up the computer.

Directory contents
  • USB/USB_HID_KeyBoard/USB_HID_KeyBoard.uvprojx MDK5 project file
  • USB/USB_HID_KeyBoard/USB_HID_KeyBoard.uvoptx MDK5 project options file
  • USB/USB_HID_KeyBoard/JLinkSettings.ini Jlink settings file
  • USB/USB_HID_KeyBoard/main.c Main program
  • USB/USB_HID_KeyBoard/usb_hid_def.h HID class defines
  • USB/USB_HID_KeyBoard/usbd_hid.c HID class request handler
  • USB/USB_HID_KeyBoard/usbd_hid.h HID class request handler header file
  • USB/USB_HID_KeyBoard/usbd_user.c USBD user application
  • USB/USB_HID_KeyBoard/usbd_user.h USBD user application header file
  • USB/USB_HID_KeyBoard/usbd_user_hid.c USBD user HID class request handler
  • USB/USB_HID_KeyBoard/usbd_user_hid.h USBD user HID class request handler header file
  • USB/USB_HID_KeyBoard/usbd_user_desc.c USBD descriptors
Hardware and Software environment
  • Hardware environment
    • HSE crystal is 8MHz
How to use it ?

In order to make the program work, you must do the following :

  • Open USB_HID_KeyBoard.uvprojx from this example folder by Keil MDK5
  • Rebuild all files and load your image into target memory
  • Run the example

    © COPYRIGHT 2020 - 2023 megawin Technology