Example program of using USB keyboard with STM32F407VET6 boards (compatible with Seed Arch Max).

Dependencies:   mbed FATFileSystem USBHost-STM32F4

Example program of using USB keyboard with STM32F407VET6 black board (compatible with Seed Arch Max).

Committer:
hudakz
Date:
Tue Feb 19 21:52:55 2019 +0000
Revision:
0:5637087657f5
Example program of using USB keyboard with STM32F407VET6 boards (compatible with Seed Arch Max).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:5637087657f5 1 #include "mbed.h"
hudakz 0:5637087657f5 2 #include "USBHostKeyboard.h"
hudakz 0:5637087657f5 3
hudakz 0:5637087657f5 4 #define LED1 PA_6
hudakz 0:5637087657f5 5
hudakz 0:5637087657f5 6 DigitalOut led(LED1);
hudakz 0:5637087657f5 7
hudakz 0:5637087657f5 8 /**
hudakz 0:5637087657f5 9 * @brief
hudakz 0:5637087657f5 10 * @note
hudakz 0:5637087657f5 11 * @param
hudakz 0:5637087657f5 12 * @retval
hudakz 0:5637087657f5 13 */
hudakz 0:5637087657f5 14 void onKeyboardEvent(uint8_t keyCode, uint8_t modifier)
hudakz 0:5637087657f5 15 {
hudakz 0:5637087657f5 16 printf("keyCode: %d, modifier: %d\r\n", keyCode, modifier);
hudakz 0:5637087657f5 17 }
hudakz 0:5637087657f5 18
hudakz 0:5637087657f5 19 /**
hudakz 0:5637087657f5 20 * @brief
hudakz 0:5637087657f5 21 * @note
hudakz 0:5637087657f5 22 * @param
hudakz 0:5637087657f5 23 * @retval
hudakz 0:5637087657f5 24 */
hudakz 0:5637087657f5 25 int main()
hudakz 0:5637087657f5 26 {
hudakz 0:5637087657f5 27 USBHostKeyboard keyboard;
hudakz 0:5637087657f5 28
hudakz 0:5637087657f5 29 // connect a USB keyboard
hudakz 0:5637087657f5 30 if (!keyboard.connect()) {
hudakz 0:5637087657f5 31 printf("USB keyboard not found.\n");
hudakz 0:5637087657f5 32 return -1;
hudakz 0:5637087657f5 33 }
hudakz 0:5637087657f5 34
hudakz 0:5637087657f5 35 printf("Keyboard connected\r\n");
hudakz 0:5637087657f5 36 // when connected, attach handler called on keyboard event
hudakz 0:5637087657f5 37 keyboard.attach(onKeyboardEvent);
hudakz 0:5637087657f5 38
hudakz 0:5637087657f5 39 Timer t;
hudakz 0:5637087657f5 40 t.start();
hudakz 0:5637087657f5 41 while(1) {
hudakz 0:5637087657f5 42 if (t.read_ms() > 500) {
hudakz 0:5637087657f5 43 led = !led;
hudakz 0:5637087657f5 44 t.reset();
hudakz 0:5637087657f5 45 }
hudakz 0:5637087657f5 46
hudakz 0:5637087657f5 47 USBHost::poll();
hudakz 0:5637087657f5 48 }
hudakz 0:5637087657f5 49 }