首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

100分GPIO该怎么调用

2013-09-06 
100分请教高手GPIO该如何调用我这有个D525的工控主板,自带GPIO功能,4进4出。下面的是厂家告知的GPIO的参数:

100分请教高手GPIO该如何调用
我这有个D525的工控主板,自带GPIO功能,4进4出。
下面的是厂家告知的GPIO的参数:
BIOS 默认:
GPIO 17,20,27,28 ==>GPO 0(低电平)
GPIO 51,53,54,55 ==>GPI如果要设定GPIO17为1(高电平)
GPIO Base=0x500 + 0x0E(bit1)设为1就可以了,
设为0就是低电平
如果是GPIO51(Input)
那么就读0x500+0x3A(Bit3),读到1就代表输入的是高电平,0就是输入的是低电平

请教高手,如何编写这种D525主板的GPIO调用程序?在网上找了若干,但都无果,好几天了,再搞不定就崩溃了  GPIO
[解决办法]
不懂,既然你知道对应的映射地址,直接用指针读写就行了啊

你那个GPIO base有点没看明白
如果是GPIO51(Input)
 那么就读0x500+0x3A(Bit3),读到1就代表输入的是高电平,0就是输入的是低电平
0X500+0x0e+51=?


void SetBit(uint8_t gpio)
{
  volatile uint32_t *ptr;//假设是32位机
  switch(gpio)
  {
     case  51:
     ptr=GPIO51的映射地址
      *ptr=1;//根据情况对该地址的某一位进行或操作
      break;
    case  53:....
}

[解决办法]
这主要取决于你的工控板有没有系统,如果没有系统或有小系统但没有虚拟地址映射,直接访问地址就可以了。

如果有系统,比如linux,就只能做驱动访问了。
[解决办法]
呵呵。换串口继电器模块了啊。
一般而言,厂商应该是提供驱动程序的啊。
如果没有的话,找个winio之类的程序,就可以用它提供的函数来读写端口了。
(XP下是没办法在应用层直接读写端口的,系统保护掉了)

热点排行