宁远电子瑞芯微RK3399开发板DLT3399A底层接口调用

不羁岁月 提交于 2019-11-26 13:55:48

 GPIO口控制

DLT3399A板卡正面写有GPIOUART4_1V8丝印的接口,并看到板子反面对应的引脚gpio丝印,选择相对应的gpio控制节点,接口位置如下图所示:

 

 

 

1、dlt3399a上有6gpio控制节点(板卡正面GPIO丝印):

高电平为3.0V

"/dev/gpio4_c5"

"/dev/gpio4_c6"

"/dev/gpio4_d5"

"/dev/gpio4_d6"

高电平为1.8V

"/dev/gpio1_b1"

"/dev/gpio1_b2"

 

读写方法:

1)使用read函数读gpio输入状态:

读取到数值 1,代表输入为高电平;

读取到数值 0,代表输入为低电平;

2)使用write函数控制gpio输出:

写入'1',代表gpio输出高电平;

写入'0',代表gpio输出低电平;

2、测试用例

#include <stdio.h>

#include <unistd.h>

#include <fcntl.h>

#include <stdlib.h>

#include <string.h>

#include <errno.h>

#include <sys/types.h>

int main (void)

{

    int  fd;

    char gpio_in = -1;

    char gpio_out='0';

fd = open ("/dev/gpio4_c5", O_RDWR); //打开设备节点

if (fd < 0)

    exit(0);     

        /* read */

    read (fd, &gpio_in, sizeof(char)); //读取GPIO输入状态

    printf("gpio_in value = %d\n", gpio_in);

/* write */

    printf("gpio_out value: %d\n", gpio_out);

    if (write(fd, &gpio_out, sizeof(char)) < 0) //输出GPIO状态

    {

        perror("fail to write");

    }

    close (fd);

    return 0;

}

 

 

 

 

 

 串口(TTL)

串口接口位置如下图所示:

 

设备节点:”/dev/ttyS4”

串口自测方法:短接UART4_RXUART4_TX两个管脚(可看板卡丝印),Android系统中打开ComAssistant串口软件,采用自发自收的测试方式,发的内容是能正确的接收回来显示,说明数据通信正常;

 

 

 

 

 

 

 

 

 

 

 

 

散热风扇控制接口

风扇接口位置如果所示:

 

1、系统自动控制:读取CPU温度,如果CPU温度超过60℃,散热风扇接口会输出12V电压,开启风扇。温度低于40℃以下,散热风扇接口会关闭风扇。

2、如果客户需要控制风扇的开启和关闭,方法如下:

温度获取节点:”/sys/devices/virtual/thermal/thermal_zone0/temp”

如果读取的到的温度值为:48750,换算温度为48750/1000=48.75℃;

控制散热风扇开启和关闭的控制节点:”/dev/fan”

使用write函数控制gpio输出:

写入’1’,代表开启散热风扇;

写入’0’,代表关闭散热风扇;

写入’2’,  代表客户不进行控制,用底层默认自动控制;

测试代码用例,可参考GPIO口控制测试用例;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!