我是靠谱客的博主 活泼灯泡,最近开发中收集的这篇文章主要介绍linux下GPIO的设置-调试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一般linux都有相关GPIO的驱动,做个简单备用吧。

这次我要控制的ls2k1000的gpio48,49,50,51.

设置为输出模式,输出一个固定的电平,所以这里先借助/sys/class/gpio/的方法调试一下。

首先在内核需要开启这个调试方法。

在 device driver --> gpio suport 选项中,选中指定的那个选项。

重新编译内核,更新新的内核。

出现这个目录才能正常操作。

以下改为sh脚本: 设置为输出,然后设置为某个电平输出。需要root权限执行。

#! /bin/sh


if [ ! -d /sys/class/gpio/gpio50 ];then
	echo 50 > /sys/class/gpio/export
# else	
# 	echo "/sys/class/gpio/gpio50 exist!!"
fi


if [ ! -d /sys/class/gpio/gpio51 ];then
	echo 51 > /sys/class/gpio/export
# else	
# 	echo "/sys/class/gpio/gpio51 exist!!"
fi


if [ ! -d /sys/class/gpio/gpio48 ];then
	echo 48 > /sys/class/gpio/export
# else	
# 	echo "/sys/class/gpio/gpio48 exist!!"
fi

if [ ! -d /sys/class/gpio/gpio49 ];then
	echo 49 > /sys/class/gpio/export
# else	
# 	echo "/sys/class/gpio/gpio49 exist!!"
fi


echo "set direction and set value"

echo out > /sys/class/gpio/gpio50/direction
echo 0 > /sys/class/gpio/gpio50/value
echo -n "gpio50/value : "
cat /sys/class/gpio/gpio50/value

echo out > /sys/class/gpio/gpio51/direction
echo 1 > /sys/class/gpio/gpio51/value
echo -n "gpio51/value : "
cat /sys/class/gpio/gpio51/value

echo out > /sys/class/gpio/gpio48/direction
echo 0 > /sys/class/gpio/gpio48/value
echo -n  "gpio48/value : "
cat /sys/class/gpio/gpio48/value

echo out > /sys/class/gpio/gpio49/direction
echo 1 > /sys/class/gpio/gpio49/value
echo -n "gpio49/value : "
cat /sys/class/gpio/gpio49/value

echo "gpio set done!!"

之前3399pro的开发板也用过这个方法。

但是3399pro的引脚是GPIOA2这种,需要计算GPIO对应的编号

这里有两个例子的计算

其中:GPIO0  取值0*32

        GPIO1  取值1*32

        GPIO2  取值2*32

         A0 取值 0*8 + 0       

        A1 取值 0*8 + 1

        B0 取值 1*8 + 1

        其他以此类推吧。

GPIO4_D2  rs422_re 低电平使能    4*32 + 3*8+2 = 154   (结果为引脚的编号)
GPIO4_D0_U  rs422_de  高电平使能 4*32 + 3*8+0 = 152

其他方法同上面的一致。

最后

以上就是活泼灯泡为你收集整理的linux下GPIO的设置-调试的全部内容,希望文章能够帮你解决linux下GPIO的设置-调试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部