winio模拟ps/2键盘输入

bobo_包子 2018-01-03 09:51:42
有个模拟键盘输入的例子》》winio 模拟按键(无PS2键盘,未测试),亲测可行,但是有个疑惑:

void MyKeyDown(int vKeyCoad)
{
bool bRtn = true;
int btScancode = 0;
btScancode = MapVirtualKey(vKeyCoad, 0);
KBCWait4IBE(); // 等待键盘缓冲区为空
bRtn = setPortVal(KBC_KEY_CMD, 0xD2, 1);// 发送命令
KBCWait4IBE();
bRtn = setPortVal(KBC_KEY_DATA, 0xe2, 1);// 写入按键信息
KBCWait4IBE(); // '等待键盘缓冲区为空
bRtn = setPortVal(KBC_KEY_CMD, 0xD2, 1);// '发送键盘写入命令
KBCWait4IBE();
bRtn = setPortVal(KBC_KEY_DATA, btScancode, 1);// '写入按下键
}


这段代码里bRtn = setPortVal(KBC_KEY_DATA, 0xe2, 1)是做什么的?望哪位对驱动熟悉的帮忙解释下。
...全文
455 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobo_包子 2018-01-04
  • 打赏
  • 举报
回复
引用 1 楼 u013605639 的回复:
http://blog.sina.com.cn/s/blog_455d7a320100vr37.html D2h 准备写数据到Output Register中。随后通过60h写入到Input Register的字节会被放入到Output Register中,此功能被用来模拟来自于Keyboard发送的数据。如果中断被允许,则会触发一个中断。
谢谢提醒。我的意思是为什么发了0xe2再发扫描码
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_455d7a320100vr37.html D2h 准备写数据到Output Register中。随后通过60h写入到Input Register的字节会被放入到Output Register中,此功能被用来模拟来自于Keyboard发送的数据。如果中断被允许,则会触发一个中断。

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧