GPIO口控制
在DLT3399A板卡正面写有GPIO和UART4_1V8丝印的接口,并看到板子反面对应的引脚gpio丝印,选择相对应的gpio控制节点,接口位置如下图所示:
1、dlt3399a上有6个gpio控制节点(板卡正面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_RX和UART4_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口控制测试用例;