|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
方法一:采用iomux的方法
! P+ r# V$ p D2 w* ?- x在设备树中iomux中添加复用gpio引脚如下:- k% Q5 O8 A$ I% [* C; e
( Y" R# e' J! E# H% u6 C w
4 p2 Q( f- o4 Kfor i in /sys/class/gpio/* ; do cat $i/label; cat $i/base; echo; done 查询gpio的base9 v& I. r# j- g. n
' K) x" G5 t( Z3 ~
一般可以这样计算GPIOn_IOx = (n-1)*32 + x
9 y5 l( h; P* _: g
8 B1 z3 @! V6 C5 a此时可以使用echo命令进行控制:
- P/ K0 ], t; C3 a命令为:
& E" I- P0 ^( P/ wecho $i > /sys/class/gpio/export+ ~0 v& w. F% U4 Y
# h8 \# Y9 {* m U. U; Z3 G
echo "out" > /sys/class/gpio/gpio$i/direction+ F; X3 k/ b9 E+ _* Q
或echo "in" > /sys/class/gpio/gpio$i/direction
$ F3 L1 G: m n; y5 a" b2 B1 b
" G+ c' f: e- pecho "1" > /sys/class/gpio/gpio$i/value
/ A- |- I& |' i9 f2 o. @. X: decho "0" > /sys/class/gpio/gpio$i/value c. a; i! K3 d. @
0 k7 P9 w. h7 t2 P$ oecho $i > /sys/class/gpio/unexport
3 K+ g. S y6 [7 ^9 [& e8 `或者使用 open("/sys/class/gpio/export", O_WRONLY); write函数进行控制。参考test.c。3 `3 D7 a" ?( y/ h* _, ?
0 U5 t$ W* u3 i/ ]3 ?方法二:创建dev/gpio节点。
* N! A2 M" n8 q1 Y+ v) C* K
3 m% e' k; z) n7 j" m8 T; j5 Q
: j9 `1 @- J$ C1 W添加driver/misc/gpio/gpio-user.c,修改Makefile文件编译。
: f) u- a, |# j9 Z2 v修改 driver/misc/Makefile 添加:
5 _4 l2 I& M! k7 J v. Lobj-y += gpio/
; D" P1 b# Q$ O0 a在linux_imx6ul_config中添加:
4 A; ~4 p1 d. E! j+ b& J3 `CONFIG_GPIO_USER_INTF=y
! {% \- y9 e* w编译之后。在dev下有gpio节点。
0 H& M0 z* v2 w采用gpio-test.c为用户测试程序。编译为gpio-test。( j w$ }5 \7 @! ]4 M: _/ ~
6 [- C1 Z9 ?) K3 q
8 v& N5 ^! v- j. b6 I9 p4 m使用gpio-test in 2测试DI。
7 y1 y6 Y) J* L2 P使用gpio-test out 9 1 测试DO 输出为高电平。
0 [) x& y5 X" W: Y3 O使用gpio-test out 9 0 测试DO 输出为低电平。5 _. _* N! I1 ?
|
|