3822|18

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince下用I/O口作为输入,驱动程序要自己写吗? [复制链接]

wince下用I/O口作为输入,外接一个按键,我只接收按键的命令。我用的EVC写的应用程序,请问要自己写驱动吗?怎么写?

最新回复

xyw
就这样做  详情 回复 发表于 2009-4-22 10:52
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
应该是可以的吧,直接查询相应寄存器(映射后的地址)的值。
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
使用wince下功能函数:
UCHAR READ_PORT_UCHAR(
  PUCHAR Port
);
等,就可以了。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
驱动里面实现一个EINT响应就可以了!
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 
wince5.0 可以

wince6.0必须写驱动。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

6
 
请问各位,像这种按键处理,是不是应该使用本机驱动程序?


如果使用本机驱动程序,那如何通知应用程序按键被按下?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
没有必要使用本机驱动。本机驱动调试麻烦。


wince5.0 可以使用setevent吧。驱动的DLL之间用这个是可行的。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
用中断,或者建个线程用setevent通知
ce5.0或4.2的话直接写在应用程序中就可以了
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

9
 
5.0及以下是不用写驱动的。
可以用virtualcopy搞定。
6.0就不行了。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 upig 的回复:
5.0及以下是不用写驱动的。
可以用virtualcopy搞定。
6.0就不行了。

virtualcopy能操作I/O,但是他要的是按键功能,怎么得知I/O变化呢,循环查询吗?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

11
 
我也搞过这个,可是没有成功,我也是用的中断方式的,不知道为什么
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

12
 
如果那只是个普通IO,不是中断口,那就用循环查询喽,CE5.0的话,virtualcopy能操作I/O,
所以不用再去写一个流驱动了,
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

13
 
学习 UP
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

14
 
把CPU的.H文件加到工程,可以直接操作可寻址寄存器和端口.
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

15
 
现在写了一下程序,
BOOL CXinDlg::OnInitDialog()
{
        CDialog::OnInitDialog();

        // Set the icon for this dialog.  The framework does this automatically
        //  when the application's main window is not a dialog
        SetIcon(m_hIcon, TRUE);                        // Set big icon
        SetIcon(m_hIcon, FALSE);                // Set small icon
       
        CenterWindow(GetDesktopWindow());        // center to the hpc screen

        // TODO: Add extra initialization here
        RETAILMSG(1,(TEXT("DialogProc WM_INITDIALOG\r\n")));
                   InitializeTests();//初始化I/O
                SetKBHook();
                ::SetFocus(NULL);//获取焦点
                //以下语句的思路是不是有点问题?
                MSG msg;
                while(GetMessage(&msg, NULL, 0, 0))
                {  
                    TranslateMessage(&msg);
                    DispatchMessage(&msg);
                }
                if (::PeekMessage(&msg, m_hWnd, WM_KEYFIRST,WM_KEYLAST, PM_REMOVE))
                {
                    if (msg.message == WM_KEYDOWN )
                       {DialogProc(
                                         m_hWnd,
                                         msg.message ,
                                         msg.wParam, //这个函数应该怎么样传入?
                                         msg.lParam ); //这个函数应该怎么样传入?

                                                }
此程序编译没有错误,只是启动后界面转入后台运行,请问是不是消息机制设置的不对,怎么改正?谢谢!
}
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

16
 
是没有显示window吧.我觉得下面的消息处理可以在WinMain里实现,或者其他的函数,直接传递参数wParam和lParam。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

17
 
使用wince键盘事件通知:
keybd_event(VK_NONAME/*自定义键值*/, 0, KEYEVENTF_KEYUP, 0);
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

18
 
楼上的正解,用postmessage也行,两个的效果一样,keybd_event通过gwes发出去的。
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 7 楼 xiaopi224 的回复:
用中断,或者建个线程用setevent通知
ce5.0或4.2的话直接写在应用程序中就可以了

就这样做
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表