修改 USB Host 库支持 Leonrado 模拟键盘鼠标
前面做了一块能将 Leonrado 转接为 Uno 的板子,二者最大的差别在于SPI信号位置的问题。解决了上面的问题,下面就是软件的问题了。
我在编译一个使用Leonrado 自带USB Keyboard功能的时候遇到奇怪的问题,始终提示没有加入include “keyboard.h”。经过一番研究发现,出现这个问题的原因是:IDE定义USB keyboard的时候定义了HID Class,而USBHost 库在解析USB设备的时候同样定义了一个HID Class,二者存在冲突。对此,需要修改避免HID Class 的冲突。我选择修改 USB Host库,因为这个毕竟是第三方库。
最终将库中的 HID Class全部修改为 NewHID ,这样我们可以在 Leonrado 同时使用 USB Host 和 模拟键盘鼠标了。
附件是修改之前和之后的版本,亲测有效:
我也碰到了类似的问题,还不知道和你碰到的是不是完全相同。你给断断,Arduino:1.8.1 (Windows 7), TD: 1.45, 开发板:"Teensy 2.0, MIDI, 16 MHz, US English"
midiusbcallback: In function 'void setup()':
midiusbcallback:16: error: 'MIDI' was not declared in this scope
MIDI.setHandleNoteOn(myNoteOn);
^
midiusbcallback: In function 'void loop()':
midiusbcallback:23: error: 'MIDI' was not declared in this scope
MIDI.read();
^
"MIDI.h" 对应多个库
已使用: C:\Users\Administrator\Documents\Arduino\libraries\MIDI
未使用:C:\Program Files\Arduino\hardware\teensy\avr\libraries\MIDI
'MIDI' was not declared in this scope
在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
无论我删掉哪一个都没办法通过编译,求指点。 好像之前还听你提起过修改SPI库,回去找帖子,寻不见了。 如果真的要修改冲突的库,需要做哪些工作呢? 谢谢老大!问题已经侥幸被我解决,具体什么原因我还不知道,相同的程序,我直接改的arduinoIDE文件-示例-MidiLirary-Callbacks,然后编译,是正常的。看来是程序位置的问题。 还有一个问题,我想只有你懂回答,因为涉及“usb抓包分析”&"usbhostshield"。我最近在家折腾电子琴,受你启发又玩usbhostshield,自然就想把电子琴usb口里的信号用usb-host-shield引出来。 我有两台电子琴,一台杂牌的,一台卡西欧的。杂牌的是插上电脑自己安装驱动的( a "class compliant" MIDI device),用arduinoIDE文件-示例-USB Host Shield Libray2.0-USBH_MIDI-USB_MIDI_converter,读取成功。卡西欧的电子琴第一次使用是需要下载驱动程序的,用示例读取不成功,我猜大概是卡西欧自做一套搞的什么屁,想请教的是有没有可能用你之前提到过的USBlyzer去分析清楚,然后怎么弄一下就可以让usb-host-shield读到呢? 其实我也是脑洞一开随便一问,我也没用过usblyzer,只是之前你推荐过这个东西就记住了,如果根本不可行,那就见笑啦。 还有个问题实在忍不住问哈,那台很贵的usb分析仪是用自己的钱买的吗?
页:
[1]
2