嵌入式开发者社区
标题:
gpio无法正常操作
[打印本页]
作者:
bit0rain
时间:
2016-4-26 09:59
标题:
gpio无法正常操作
修改设备树文件.dts如下:
#include "am437x-gp-evm.dts"
#include <dt-bindings/sound/sii9022-audio.h>
&am43xx_pinmux {
gpio1_pins: gpio1_pins {
pinctrl-single,pins = <
0x040 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_16 */
0x044 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_17 */
0x048 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_18 */
0x04C (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_19 */
0x050 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_20 */
0x054 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_21 */
0x058 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_22 */
0x05C (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio1_23 */
>;
};
gpio4_pins: gpio4_pins {
pinctrl-single,pins = <
0x1b0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_0 */
0x1b4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_1 */
0x1b8 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_2 */
0x1bc (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_3 */
0x1c0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_4 */
0x1c4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_5 */
0x1c8 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_6 */
0x1cc (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_7 */
0x1d0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_8 */
0x1d4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_9 */
0x1d8 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_10 */
0x1dc (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_11 */
0x1e0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_12 */
0x1e4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_13 */
0x1e8 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_14 */
0x1ec (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_15 */
0x1f0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_16 */
0x1f4 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_17 */
0x1f8 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_18 */
0x1fc (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_19 */
0x200 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_20 */
0x204 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_21 */
0x210 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_24 */
0x214 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_25 */
0x218 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_26 */
0x21c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio4_27 */
>;
};
};
&gpio1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&gpio1_pins>;
status = "okay";
};
&gpio4 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&gpio4_pins>;
status = "okay";
};
重新编译内核及设备树
实际使用过程中,发现管脚gpio1[16]无法配置,配置命令行如下:
echo 48 > export
报错,设备忙,写入失败
配置gpio1[17]成功:
echo 49 > export
cd gpio49
echo "out" > direction
echo 1 > value
echo 0 > value
发现无法改变对应管脚的输出状态,请问问题出在哪里谢谢。
作者:
bit0rain
时间:
2016-4-26 21:13
追加问题:am437x的核心板,那些管脚是可以复用为gpio的?是不是gpmc的所有管脚都不能复用为gpio?谢谢
作者:
teddy
时间:
2016-4-27 09:57
可以复用成gpio。
echo 48 > export
报错,设备忙,写入失败
估计是gpio在内核里面有注册使用了。
作者:
bit0rain
时间:
2016-4-27 10:42
teddy 发表于 2016-4-27 09:57
可以复用成gpio。
echo 48 > export
报错,设备忙,写入失败
但是我用gpio1【17】,配置都是成功的,但是改变外部状态,相应管脚没有电平变化,是为什么?
作者:
bit0rain
时间:
2016-5-17 11:09
自己来结贴吧,把不用的设备都注释掉,其他什么都不要改,也不要把你想用做gpio的管脚设置为mode7,保存,编译即可,可以试试,命令行下进行目标管脚测试,只要系统没有占用,妥妥的可以用
欢迎光临 嵌入式开发者社区 (https://51ele.net/)
Powered by Discuz! X3.4