Mbed OS 2 and Mbed OS 5

This is the handbook for Mbed OS 2. If you’re working with Mbed OS 5, please see the Mbed OS 5 documentation.

The USBMouseKeyboard interface is used to emulate a mouse and a keyboard at the same time over the USB port.

The USB connector should be attached to

  • p31 (D+), p32 (D-) and GND for the LPC1768 and the LPC11U24
  • The on-board USB connector of the FRDM-KL25Z

Hello World

Import program

00001 #include "mbed.h"
00002 #include "USBMouseKeyboard.h"
00004 //LED1: NUM_LOCK
00005 //LED2: CAPS_LOCK
00007 BusOut leds(LED1, LED2, LED3);
00009 //USBMouseKeyboard
00010 USBMouseKeyboard key_mouse;
00012 int main(void) {
00013     while (1) {
00014         key_mouse.mediaControl(KEY_VOLUME_DOWN);
00015         key_mouse.printf("Hello World from Mbed\r\n");
00016         key_mouse.keyCode('s', KEY_CTRL);
00017         key_mouse.move(20, 0);
00018         key_mouse.keyCode(KEY_SCROLL_LOCK);
00019         wait(1);
00020         leds = key_mouse.lockStatus();
00021     }
00022 }


Import library

Public Member Functions

  USBMouseKeyboard (MOUSE_TYPE mouse_type=REL_MOUSE, uint16_t vendor_id=0x0021, uint16_t product_id=0x0011, uint16_t product_release=0x0001)
bool  update (int16_t x, int16_t y, uint8_t buttons, int8_t z)
  Write a state of the mouse.
bool  move (int16_t x, int16_t y)
  Move the cursor to (x, y)
bool  press (uint8_t button)
  Press one or several buttons.
bool  release (uint8_t button)
  Release one or several buttons.
bool  doubleClick ()
  Double click (MOUSE_LEFT)
bool  click (uint8_t button)
bool  scroll (int8_t z)
bool  keyCode (uint8_t key, uint8_t modifier=0)
  To send a character defined by a modifier(CTRL, SHIFT, ALT) and the key.
virtual int  _putc (int c)
  Send a character.
bool  mediaControl (MEDIA_KEY key)
  Control media keys.
uint8_t  lockStatus ()
  Read status of lock keys.
bool  send (HID_REPORT *report)
  Send a Report.
bool  sendNB (HID_REPORT *report)
  Send a Report.
bool  read (HID_REPORT *report)
  Read a report: blocking.
bool  readNB (HID_REPORT *report)
  Read a report: non blocking.


You can choose either a relative mouse or an absolute mouse with the keyboard. By default, a USBMouseKeyboard is a relative mouse and a keyboard