主题:ESM6800的GPIO问题

  共有22749人关注过本帖    
客人
1楼


ESM6800的GPIO问题  发帖心情 Post By:2017-5-29 20:55:00   [只看该作者]

上电后打开GPIO文件,Set Clear没有效果,State始终是0x00000000,是什么原因


  单帖管理 | 引用 | 回复 回到顶部
x10
2楼


  发帖心情 Post By:2017-5-30 10:00:00   [只看该作者]

先要把需要操作的GPIO设置成输出,然后才能设置其电平。方便的话,请把你的测试代码贴出来,谢谢!


  单帖管理 | 引用 | 回复 回到顶部
客人
3楼


  发帖心情 Post By:2017-5-30 13:22:00   [只看该作者]

unsigned int state;
unsigned int i;

    if(GPIO_OutEnable(fd_gpio, 0xffffffff)<0)
    {
        printf("gpio out enable error.\n");
        return;
    }

    state=0xffffffff;
    if(GPIO_PinState(fd_gpio,&state)<0)
    {
        printf("gpio pin state error.\n");
        return;
    }
    printf("gpio state x\n",state);
    getchar();

    state=0xffffffff;

    i=0;

    while(1)
    {
        printf("%d set\n",i);
        if(GPIO_OutSet(fd_gpio,1<<i)<0)
        {
            printf("gpio out set error.\n");
            return;
        }
        getchar();
        state=0xffffffff;
        if(GPIO_PinState(fd_gpio,&state)<0)
        {
            printf("gpio pin state error.\n");
            return;
        }
        printf("gpio state x\n",state);
        getchar();
        printf("%d clear\n",i);
        if(GPIO_OutClear(fd_gpio,1<<i)<0)
        {
            printf("gpio out clear error.\n");
            return;
        }
        getchar();
        state=0xffffffff;
        if(GPIO_PinState(fd_gpio,&state)<0)
        {
            printf("gpio pin state error.\n");
            return;
        }
        printf("gpio state x\n",state);
        getchar();
        i++;
        if(i ==32)
            i=0;
    }


输出:


gpio state 0x00000000

1 set

gpio state 0x00000000

1 clear

gpio state 0x00000000

2 set

gpio state 0x00000000

2 clear

gpio state 0x00000000

3 set

gpio state 0x00000000

3 clear

gpio state 0x00000000

4 set

gpio state 0x00000000

4 clear

gpio state 0x00000000

...


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
4楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2017-5-30 18:31:00   [只看该作者]

你好,通过手册来看,GPIO_PinState函数所返回的值为GPIO在输入状态下的输入信号的值。

我们测试也将GPIO置为输入,然后接入外部信号来测试GPIO_PinState函数的返回值。

关于在输出的情况下GPIO_PinState返回的值我们可以下周做具体的测试,看是否全为0。


  单帖管理 | 引用 | 回复 回到顶部
客人
5楼


  发帖心情 Post By:2017-5-30 22:19:00   [只看该作者]

GPIO设置输入,外部信号接高低电平时,测试PinState值相当不稳定,外部信号不变时,GPIO无规律变化若干次,外部信号改变电平,GPIO非常不灵敏,很长时间才能测出改变,然后仍然无规律地高低电平变化

同样的信号接在ESM9283上,测试状态非常稳定


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
6楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2017-5-30 23:15:00   [只看该作者]

你好,明天上班我们会进行对应的测试,有了结果后会第一时间通知您,如果方便可以留一个邮箱地址,我们会把结果发送到邮箱中,谢谢!


  单帖管理 | 引用 | 回复 回到顶部
客人
7楼


  发帖心情 Post By:2017-5-31 8:26:00   [只看该作者]

邮箱ansicheng@163.com


  单帖管理 | 引用 | 回复 回到顶部
hzc
8楼


  发帖心情 Post By:2017-5-31 10:00:00   [只看该作者]

你好,测试的程序和结果已经发送到邮箱,请查收。


  单帖管理 | 引用 | 回复 回到顶部

返回首页

ESM6800的GPIO问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: