1114|0

441

帖子

3

TA的资源

纯净的硅(高级)

楼主
 

【正点原子RV1126 AI Linux开发板】 GPIO输出测试 [复制链接]

  本帖最后由 TL-LED 于 2024-2-1 21:24 编辑

学习下测试RV1126的GPIO输出测试,点亮LED灯。

 

一、硬件电路

 

测试使用GPIO0_A1端口

核心板部分 GPIO0_A1端口电平电路

 

端口输出电平是1.8V,为了方便测试常用的3.3V外设,加入电平转换电路

 

二、程序

 

2.1、gpio_out.c

/***************************************************************
 Copyright © ALIENTEK Co., Ltd. 1998-2021. All rights reserved.
 文件名 : pwm.c
 作者 : 邓涛
 版本 : V1.0
 描述 : GPIO应用编程示例代码--输出
 其他 : 无
 论坛 : www.openedv.com
 日志 : 初版 V1.0 2021/6/15 邓涛创建
 ***************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

static char gpio_path[100];

static int gpio_config(const char *attr, const char *val)
{
    char file_path[100];
    int len;
    int fd;

    sprintf(file_path, "%s/%s", gpio_path, attr);
    if (0 > (fd = open(file_path, O_WRONLY))) {
        perror("open error");
        return fd;
    }

    len = strlen(val);
    if (len != write(fd, val, len)) {
        perror("write error");
        close(fd);
        return -1;
    }

    close(fd);  //关闭文件
    return 0;
}

int main(int argc, char *argv[])
{
    int arg=0;
    char val=0;
    /* 校验传参 */
    /*if (3 != argc) {
        fprintf(stderr, "usage: %s <gpio> <value>\n", argv[0]);
        exit(-1);
    }*/
    //argv[1]=0;
    /* 判断指定编号的GPIO是否导出 */
    //sprintf(gpio_path, "/sys/class/gpio/gpio%s", argv[1]);
    sprintf(gpio_path, "/sys/class/gpio/gpio1");

    if (access(gpio_path, F_OK)) {//如果目录不存在 则需要导出

        int fd;
        int len;

        if (0 > (fd = open("/sys/class/gpio/export", O_WRONLY))) {
            perror("open error");
            exit(-1);
        }
        arg=1;
        len = strlen(argv[1]);
        //if (len != write(fd, argv[1], len)) {//导出gpio
        if (1 != write(fd, &arg, 1)) {//导出gpio
            perror("write error");
            close(fd);
            exit(-1);
        }

        close(fd);  //关闭文件
    }

    /* 配置为输出模式 */
    if (gpio_config("direction", "out"))
        exit(-1);

    /* 极性设置 */
    if (gpio_config("active_low", "0"))
        exit(-1);

    for(arg=0;arg<5;arg++){
        //val=0;
        gpio_config("value", "0");
        sleep(1);
        //val=1;
        gpio_config("value", "1");
        sleep(1);
    }

    /* 控制GPIO输出高低电平 */
    /*if (gpio_config("value", argv[2]))
        exit(-1);*/

    /* 退出程序 */
    exit(0);
}

 

2.2、编译程序

编译需要用到工具arm-linux-gnueabihf-gcc

第一次编译,系统没有安装此工具需要安装,执行安装命令:sudo apt-get install arm-linux-gnueabihf-gcc

编译:hui@ubuntu:/opt/atk-rv1126_app/gpio$ sudo arm-linux-gnueabihf-gcc -o gpio_out gpio_out.c

复制文件到开发板:hui@ubuntu:/opt/atk-rv1126_app/gpio$ scp gpio_out root@192.168.1.21:/opt

 

2.3、程序运行

开发板下执行命令:[root@ATK-DLRV1126:/opt]# ./gpio_out

gpio_out

 



 

 

点赞 关注
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
汽车手册(技术知识)

1.谈谈火花塞 一般用车者相信都会到维修站做一些基本的保养维修工作,如换机油、火花塞等,但阁下是否认识到这些简单的东西,如 ...

C语言库函数总结---2

stdlib.h#include void srand(unsigned seed) 初始化随机数发生器 int rand() ...

M4之浮点运算单元FPU个人总结!!!!!!!!!!!!!!!!!!!!!!!!

最近一直在纠结M4的浮点运算单元该怎么开启,为何语句里配置了(FPUEnable();FPULazyStackingEnable();)跟没配置程序运行速度是 ...

ADuc7026学习-串口

本帖最后由 dj狂人 于 2015-1-12 17:23 编辑 ...

【基于NUCLEO-F746ZG电机开发应用】13.参数配置-USART3配置

此串口再开发板上的作用是:与ST-LINK进行通讯,然后ST_LINK2经过USB与电脑连接,与上位机MotorControl Workbench进行参数显示和 ...

【Silicon Labs BG22-EK4108A 蓝牙开发评测】+从零开始创建一个蓝牙程序

本帖最后由 北方 于 2022-1-17 15:14 编辑 1. 创建程序有一步步的导则,参见《AN1260: Integrating v3.x Silicon Labs Blueto ...

FPGA技术文档

最近在学习FPGA方面的知识,附件是技术手册.

【得捷电子Follow me第1期】作品提交 - 温湿度计和网络时钟(开机播放生日快乐歌)

本帖最后由 walker2048 于 2023-6-30 20:29 编辑 作品提交 - 温湿度计和网络时钟 展示视频 项目介绍 介绍: 本 ...

TI MSPM0L1306 LaunchPad体验02:MSP是什么意思?M0+内核落伍了吗?

本帖最后由 x1816 于 2023-10-9 23:01 编辑 看懂MSPM0系列的型号编码 要看懂一个产品系列,只需要看懂型号的编码方式即可 ...

【好书共读——《Python编程快速上手(第2版)》】——①Python入门知识介绍

Python入门知识介绍 Python是一种高级、通用、解释型编程语言。它由Guido van Rossum于1989年发明,目前由Python软件基金会维 ...

关闭
站长推荐上一条 1/9 下一条

 
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
快速回复 返回顶部 返回列表