官方f1c100s文档中并没有有关外设的操作说明,我是借用的zero的文档做的。
使用sysfs操作GPIO的例子:
#echo 192 > /sys/class/gpio/export #导出 PG0, GREEN
#ls /sys/class/gpio/
export gpio192 gpiochip0 unexport
#ls /sys/class/gpio/gpio192/
active_low direction subsystem/ value device/ power/ uevent
#echo "out" > /sys/class/gpio/gpio192/direction #设置为输出
#echo 0 > /sys/class/gpio/gpio192/value #亮灯
#echo 1 > /sys/class/gpio/gpio192/value #灭灯
#echo "in" > /sys/class/gpio/gpio192/direction #设置为输入
#cat /sys/class/gpio/gpio192/value #读取电平
0
但是我执行echo 46> /sys/class/gpio/export后,成功生成gpio46文件夹,但是执行echo "out" > /sys/class/gpio/gpio46/direction时出错了
sh: write error: Unknown error 517
我用vi编辑direction文件也照样不能写入,这是什么坑?
最近编辑记录 kekemuyu (2019-05-19 18:15:43)
离线
难道是我手册看错了,我看的是pe3是46
离线
我说错了,是datasheet,这是licheepi官方的,PE3的gpio不是46吗?
离线
手册里面的序号不是gpio的编号
gpio的编号是设备树里面定义的吧
找到问题了,在zero的文档里有说明:
在Linux中,GPIO 使用0~MAX_INT之间的整数标识。
对于32位CPU,每组GPIO 32个,引脚号就是按顺序排列。
从PA0开始gpio是0,那么PE3对应是32*4+3=131,经试验已验证
离线