分享一个用stm32驱动PDIUSBD12实现虚拟鼠标的程序~

2019-07-21 05:05发布

虽然STM32用PDIUSBD12有点浪费它自身带的硬件USB,但作为USB,了解USB枚举的详细过程,还是有必要从最简单的学习着走嘛。
工程里面有一些硬件的说明。整体程序是仿照电脑圈圈的。(还是敲了我两天的程序哦~)
需要的同学可以看看~~我也是才学USB,希望可以多交流~~~

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
青木
1楼-- · 2019-07-21 07:36
回复【楼主位】lsj9383:
---------------------------------
叼烟大叔,很厉害的样子,虽然不知道在说啥
兜里有糖
2楼-- · 2019-07-21 13:26
顶一个~
lsj9383
3楼-- · 2019-07-21 16:31
 精彩回答 2  元偷偷看……
lsj9383
4楼-- · 2019-07-21 17:05
|-------------------------------------------------------  

提供USB HID Keyboard常用的按键Usage ID

第零字节为功能键。每一位对应一种按键
第一字节保留
第2字节到第7字节为c_usbKeyCode

|0     |Right|Right|Right|Right|Left |Left |Left |Left | 

|      |GUI  |Alt  |Shift|Ctrl |GUI  |Alt  |Shift|Ctrl | 
|------------------------------------------------------- 

const unsigned char c_usbKeyCode[64]=

{

  0x00,  //key up

  0x01,

  0x02,

  0x03,

  0x04,  //key a

  0x05,  //key b

  0x06,  //key c

  0x07,  //key d

  0x08,  //key e

  0x09,  //key f

  0x0a,  //key g

  0x0b,  //key h

  0x0c,  //key i

  0x0d,  //key j

  0x0e,  //key k

  0x0f,  //key l

  0x10,  //key m

  0x11,  //key n

  0x12,  //key o

  0x13,  //key p

  0x14,  //key q

  0x15,  //key r

  0x16,  //key s

  0x17,  //key t

  0x18,  //key u

  0x19,  //key v

  0x1a,  //key w

  0x1b,  //key x

  0x1c,  //key y

  0x1d,  //key z

  0x1e,  //key 1 !

  0x1f,  //key 2 @

  0x20,  //key 3 #

  0x21,  //key 4 $

  0x22,  //key 5 %

  0x23,  //key 6 ^

  0x24,  //key 7 &

  0x25,  //key 8 *

  0x26,  //key 9 (

  0x27,  //key 0 )

  0x28,  //key Enter

  0x29,  //key ESC

  0x2a,  //key Backspace

  0x2b,  //key TAB

  0x2c,  //key Space

  0x2d,  //key - _

  0x2e,  //key = +

  0x2f,  //key [ {

  0x30,  //key ] }

  0x31,  //key  |

  0x32,  //key

  0x33,  //key ;:

  0x34,  //key ‘ “

  0x35,

  0x36,  //key , <

  0x37,  //key . >

  0x38,  //key / ?

  0x39,  //key CAP Lock

  0x3a,  //key F1

  0x3b,  //key F2

  0x3c,  //key F3

  0x3d,  //key F4

  0x3e,  //key F5

  0x3f,  //key F6

  0x40,  //key F7

  0x41,  //key F8

  0x42,  //key F9

  0x43,  //key F10

  0x44,  //key F11

  0x45,  //key F12

  0x46,  //key rint Screeen

  0x47,  //key Scroll LOCK

  0x48,  //key ause

  0x49,  //key Insert

  0x4a,  //key Home

  0x4b,  //key ageup

  0x4c,  //key Delete

  0x4d,  //key End

  0x4e,  //key ageDown

  0x4f,  //key right arrow

  0x50,  //key left arrow

  0x51,  //key down arrow

  0x52,  //key up arrow

  0x53,  //key Num LCOk

  0x54,  //keypad /1

  0x55,  // Keypad *

  0x56,  // Keypad -

  0x57,  // Keypad +

  0x58,  // keypad Enter

  0x59,  // Keypad 1

  0x5a,  // Keypad 2

  0x5b,  // Keypad 3

  0x5c,  // Keypad 4

  0x5d,  // Keypad 5

  0x5e,  // Keypad 6

  0x5f,  // Keypad 7

  0x60,  // Keypad 8

  0x61,  // Keypad 9

  0x62,  // Keypad 0

  0x63,  // Keypad .

};

GUI键即为win键,我找了win键找了很久,终于试出来了。
weiwei2010
5楼-- · 2019-07-21 18:18
顶一个
keepfight_zjh
6楼-- · 2019-07-21 22:49
你好,最近在研究如何使用STM32驱动PDIUSBD12,找了好几天终于找到了有相同做法的人了,你提供的代码已经运行过了,有些问题,就是Int中断一直都没有出现,可以提供你的原理图吗?我找了很久都没有人将使用3.3V的PDIUSBD12,如果方便的话,请回复我。。。真的非常感谢。