概述
一般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的设置-调试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复