我目前正在做一个项目,我想通过模拟 PS/2 键盘来使用 AVR 控制我的 PC。出于这个原因,我目前拥有所有必需的硬件和一些软件库,例如AVR的https://github.com/ndusart/ps2-keyboard和http://python-evdev.readthedocs.io/en/latest/ PC 部分的index.html。
我还从http://www.pcbheaven.com/wikipages/The_PS2_protocol/、http://www.computer-engineering.org/ps2protocol/和http://retired.beyondlogic.org/了解了 PS/2 协议键盘/keybrd.htm
然后我运行命令sudo cat /dev/input/by-path/platform-i8042-serio-0-event-kbd > ./kbrd.hex
并连接键盘,然后按下并释放退格键。
我会排除类似的东西AA 66 F0 66
,也许还有一些FA
介于两者之间的(ACK),但我得到的是非常不同的:
所以我的问题是:
这可能是由于我对 /dev/input/ 的工作行为的误解造成的,还是问题出在我设置的其他部分?我希望从 /dev/input/ 的缓冲区中获取原始输入,这不是我认为原始应该是的。
您描述该过程的方式是:开始捕获输出,插入键盘,按下一个键,然后停止捕获。如果是这种情况,我建议插入键盘,开始捕获,按键,停止捕获?
编辑:添加附加信息
到目前为止,我自己的快速研究还没有得到任何东西来完全符合你的转储,但是:
根据kernel.org 文档和源代码,/dev/input 接口的输出格式为:
这相当于:
01
对于EV_KEY
(按键)。请参阅input-event-codes.h0E
为KEY_BACKSPACE
. 请参阅input-event-codes.h01
用于按键、00
释放、02
自动重复