none
GPIO驱动与上层使用问题 RRS feed

  • 问题

  •       请教各位老师,我用的2443开发板的GPIO事先都备分配好了功能,我想用GPJ等端口从外设读取一些数据,但GPJ被分配给了CAMERA使用。如果我不接CAMERA,直接在WinCE应用程序中对GPJ操作读数,应该怎么操作呢?

          在BSP中已经定义了各个GPIO的寄存器,如下所示:

    #define rGPJCON  (*(volatile unsigned *)0x560000D0) //Configure the pins of port J
    #define rGPJDAT  (*(volatile unsigned *)0x560000D4) //The data for port J
    #define rGPJUDP  (*(volatile unsigned *)0x560000D8) //Pull-down disable for port J

          我想在应用程序中直接对寄存器进行操作,如我把GPJ的所有端口都设为输入,如rGPJCON=0x00000000;按芯片手册上所说rGPJDAT中就应该是输入的数据。在EVC中这样操作能实现吗?应如何获取GPIO的输入呢?

         

     

    2008年4月15日 6:45

答案

  • 关于你所说的,我的理解是你要把用于摄像头部分的GPIO做其他用途。我只是告诉你,你可以写个流驱动,让应用程序通过这个驱动来操作GPIO。至于你说会不会对你的摄像头驱动有影响,我想这个取决于你的摄像头驱动和如何实现流驱动,也取决于你的应用环境。说实话,我一点都不赞成你把一个GPIO同时用在两个地方。按说现在的处理器都有足够的GPIO可以使用,应该合理分配,最好只用在一个地方。

     

    2008年4月21日 4:50

全部回复

  •  

    我建议你写个流设备驱动,在驱动程序里面来操作GPIO,这样上层应用可以通过CreateFile来打开这个设备,然后通过ReadFile和WriteFile函数来读写GPIO的状态。
    2008年4月18日 6:47
  •       感谢您的提示,还有个问题请教,如果我想用连接摄像头的GPIO脚实现通用的数据传输,写了驱动后是否对原有的摄像头驱动有影响,在调用了底层的XXX_Open(CreateFile)函数时。

    2008年4月18日 12:09
  • 关于你所说的,我的理解是你要把用于摄像头部分的GPIO做其他用途。我只是告诉你,你可以写个流驱动,让应用程序通过这个驱动来操作GPIO。至于你说会不会对你的摄像头驱动有影响,我想这个取决于你的摄像头驱动和如何实现流驱动,也取决于你的应用环境。说实话,我一点都不赞成你把一个GPIO同时用在两个地方。按说现在的处理器都有足够的GPIO可以使用,应该合理分配,最好只用在一个地方。

     

    2008年4月21日 4:50