export"); pr...">
欢迎光临
我们一直在努力

RK3128操作GPIO

RK3128开发环境操作CPU的GPIO,初始化方法如下:

int gpio_init()
{
  int ret = 0;
  ret = system("cd /sys/class/gpio && echo 117 > export");
  printf("ret = %d \n",ret);
  ret = system("cd /sys/class/gpio/gpio117 && echo out > direction");
  printf("ret = %d \n",ret);
  ret = system("cd /sys/class/gpio/gpio117 && echo 1 > value");
  printf("ret = %d \n",ret);
  
  ret = system("cd /sys/class/gpio && echo 123 > export");
  printf("gpio_init ret = %d \n",ret);
  ret = system("cd /sys/class/gpio/gpio123 && echo in > direction");
  printf("gpio_init ret = %d \n",ret);
  
  return 0;
}

得到GPIO电平的方法如下:

int get_val_gpio(int gpio)
{
  int ret = -1;
  char path[256];
  char sys_line[256];
  char buf_ps[1024];
  FILE * ptr;
  sprintf(path, "%s%d","/sys/class/gpio/gpio",gpio);
  
  printf("\npath:%s\n",path);
  sprintf(sys_line, "cd %s && cat value",path);
  
  
  if((ptr=popen(sys_line, "r"))!=NULL)
  {
    while(fgets(buf_ps, 1024, ptr)!=NULL)
    {
      if(strlen(buf_ps)>1024)
        break;
    }
    pclose(ptr);
    ptr = NULL;
    printf("res[%d]:%sm >>> %s\n",(int)strlen(buf_ps),sys_line,buf_ps);
  }
  else
  {
    gpio_init();
    printf("popen %s error\n", sys_line);
    return -1;
  }
  ret = atoi(&buf_ps[0]);
  
  return ret;
}

控制GPIO 的方法

  ret = system("cd /sys/class/gpio/gpio117 && echo 0 > value");//拉低
  ret = system("cd /sys/class/gpio/gpio117 && echo 1 > value");//拉高

赞(2) 打赏
未经允许不得转载:huangea的博客 » RK3128操作GPIO

评论 抢沙发

有趣的网站

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册