发送正确的HID密钥?

时间:2012-03-19 20:18:22

标签: keyboard hid

我目前正在使用atmega微控制器开发一款非常小巧且特定的HID键盘。我遇到的最大问题是键码非常特定于当前在主机上设置的语言环境。

所有正常的字符如a-z都运行得很好,但是当按下键时,一些特殊的字符会产生错误的结果。

例如+密钥,即0xE1& 0x2E(LeftShift& KeyboardEqualSign)仅适用于美式键盘。但我使用德语布局,所以我得到了ß

我现在如何获得德国布局的正确密码?我找不到任何描述这些键的文档...我认为HID键码设计非常糟糕,以支持多种键盘布局:(

我是否需要在德国布局上查找我们的密钥?那么对于+签名可能是]密钥?但为什么这么愚蠢的设计呢?是否有任何包装?

1 个答案:

答案 0 :(得分:0)

有同样的问题。我拍了一张en_us键盘的照片并将它与我的德语键盘进行了比较,然后我将其转移到了键盘上......它还没有完成,因为它的工作量惊人,而且我现在不需要其他角色。最重要的角色应该在那里。它在Iso8859之后排序,我让iso代码保留可能对某人有帮助。

你走了:

iso8859十六进制代码,修饰符,usb隐藏键码,字符

  • 0x22,shift,0x1F,“
  • 0x23,0,0x31,#
  • 0x24,shift,0x21,$
  • 0x25,shift,0x22,%
  • 0x26,shift,0x23,&
  • 0x27,shift,0x31,'
  • 0x28,shift,0x25,(
  • 0x29,shift,0x26,
  • 0x2A,shift,0x30,*
  • 0x2B,0,0x30,+
  • 0x2C,0,0x36 ,,
  • 0x2D,0,0x38, -
  • 0x2E,0,0x37,。
  • 0x2F,shift,0x24,/
  • 0x30到0x39是数字,这里没有改变到en_us
  • 0x3A,shift,0x37,:
  • 0x3B,shift,0x36 ,;
  • 0x3C,0,0x64,<
  • 0x3D,shift,0x27,=
  • 0x3E,shift,0x64,>
  • 0x3F,shift,0x2D,?
  • 0x40,altgr,0x14,@ *大写字母,en_us
  • 没有变化
  • 0x59,shift,0x1D,开关Z,Y
  • 0x5A,shift,0x1C;
  • 0x5B,altgr,0x25,[
  • 0x5C,altgr,0x2D,“\”
  • 0x5D,altgr,0x26,]
  • 0x5E,0,0x35,^
  • 0x5F,shift,0x38,_
  • 0x60,shift,0x2E,` *小写字母,此处没有更改en_us
  • 0x79,0,0x1D,切换z,y
  • 0x7A,0,0x1C
  • 0x7B,altgr,0x24,{
  • 0x7C,altgr,0x64,|
  • 0x7D,altgr,0x27,}
  • 0x7E,altgr,0x30,〜 * 0x80至0x9F未使用 0xA0不存在“非突破空间”
  • 尚未完成
  • 0xC4,shift,0x34,Ä
  • 尚未完成
  • 0xD6,shift,0x33,Ö
  • 尚未完成
  • 0xDC,shift,0x2F,Ü
  • 尚未完成
  • 0xE4,0,0x34,ä
  • 尚未完成
  • 0xF5,0,0x33,ö
  • 尚未完成
  • 0xFC,0,0x2F,ü
  • 尚未完成

希望能帮助你或下一个绊倒这个问题:)

祝你好运