前言:关于Arduino和Leonardo
想要做一把键盘,如果是实现一些简单的按键功能,要做一个宏按键,然后还有做一个知名的badusb,你可以使用Arduino Leonardo以及一些衍生的板子,例如说Pro Mini,利用Arduino,你可以更好的把控你自制的键鼠产品
另外就是这样可以极大的加速固件开发流程,基本来说使用它容易入门,时间性价比高,不必在配置上折腾太多时间,另外就是电流最大能到10ma,这是一些STC,STM32之流无法企及的
当然缺点也是有的,引脚比较少还有大运算量情况下速度会跟不上。
和键盘有关的常用函数指引
要使用Leonardo,需要明白几个函数
///首先是头文件
#include "Keyboard.h"
///声明头文件后,就可以使用常用的函数,初始化键盘,这个我会放在setup()函数里面
Keyboard.begin();
///然后可以试着打印一段字符
Keyboard.print("GG");//没有回车
Keyboard.println('\r');//有回车
///一些必要的函数,按下按键和释放按键
Keyboard.press(KEY_BACKSPACE);
Keyboard.release(KEY_BACKSPACE);
特殊按键的定义
要使用一些类似回车,或者Ctrl和Shift怎么办,就需要使用定义好的头文件,在硬盘中的位置是
///Alt和Ctrl和Shift
#define KEY_LEFT_CTRL 0x80
#define KEY_LEFT_SHIFT 0x81
#define KEY_LEFT_ALT 0x82
#define KEY_LEFT_GUI 0x83
#define KEY_RIGHT_CTRL 0x84
#define KEY_RIGHT_SHIFT 0x85
#define KEY_RIGHT_ALT 0x86
#define KEY_RIGHT_GUI 0x87
///方向键系列
#define KEY_UP_ARROW 0xDA
#define KEY_DOWN_ARROW 0xD9
#define KEY_LEFT_ARROW 0xD8
#define KEY_RIGHT_ARROW 0xD7
//特殊键位,其中RETURN就是回车
#define KEY_BACKSPACE 0xB2
#define KEY_TAB 0xB3
#define KEY_RETURN 0xB0
#define KEY_ESC 0xB1
///特殊键位,我比较常用的是DELETE
#define KEY_INSERT 0xD1
#define KEY_DELETE 0xD4
#define KEY_PAGE_UP 0xD3
#define KEY_PAGE_DOWN 0xD6
#define KEY_HOME 0xD2
#define KEY_END 0xD5
#define KEY_CAPS_LOCK 0xC1
///F区的这些那些
#define KEY_F1 0xC2
#define KEY_F2 0xC3
#define KEY_F3 0xC4
#define KEY_F4 0xC5
#define KEY_F5 0xC6
#define KEY_F6 0xC7
#define KEY_F7 0xC8
#define KEY_F8 0xC9
#define KEY_F9 0xCA
#define KEY_F10 0xCB
#define KEY_F11 0xCC
#define KEY_F12 0xCD
#define KEY_F13 0xF0
#define KEY_F14 0xF1
#define KEY_F15 0xF2
#define KEY_F16 0xF3
#define KEY_F17 0xF4
#define KEY_F18 0xF5
#define KEY_F19 0xF6
#define KEY_F20 0xF7
#define KEY_F21 0xF8
#define KEY_F22 0xF9
#define KEY_F23 0xFA
#define KEY_F24 0xFB