liuzhu 发表于 2016-8-10 13:31:16

OK335xS GPIO 无法输出的问题

环境:OK335xS开发板 + 安卓操作系统
目标:将GPIO1_31设置为Output,用以控制外部硬件。

实现步骤:
1. GPIO初始化:参考LED初始化过程,设置GPIO1_31,如下图


2. 修改led-dev.c,原OK335xS只控制1个LED,现增加LED3,控制GPIO1_31


3. 启动ATestForlinx-->LED
点击LED1,板上LED灯随之点亮或熄灭,但点击LED3,CON8中的PIN10电平无变化,始终为低电平。
运行日志如下:
(1) 点击LED1
[ 4220.502229] led open
[ 4220.506919] led ioctl with cmd:1,arg:0
[ 4220.510920] gpio_set_value(gpio3_16, 0->0(0)) // 设置为0,灯亮
[ 4220.518187] led release

[ 4221.627404] led open
[ 4221.630117] led ioctl with cmd:0,arg:0
[ 4221.634060] gpio_set_value(gpio3_16, 0->1(1)) // 设置为0,灯灭
[ 4221.640654] led release


(2) 点击LED3
[ 4261.231931] led open
[ 4261.234248] led ioctl with cmd:1,arg:2
[ 4261.238206] gpio_set_value(gpio1_31, 0->0(0))// 设置为0,实测为低电平
[ 4261.243247] led release

[ 4262.384003] led open
[ 4262.387916] led ioctl with cmd:0,arg:2
[ 4262.391904] gpio_set_value(gpio1_31, 0->1(0)) // 设置为1:实测仍为低电平
[ 4262.396663] led release

请教,以上对GPIO的使用有啥问题?为何LED1灯能正确动作,而实全按LED1修改的LED3却无效?

liuzhu 发表于 2016-8-10 13:34:27

上面的“[ 4221.634060] gpio_set_value(gpio3_16, 0->1(1)) // 设置为0,灯灭”输入错误,应该是:

[ 4221.634060] gpio_set_value(gpio3_16, 0->1(1)) // 设置为1,灯灭

飞凌-chongzi 发表于 2016-8-12 13:33:05

liuzhu 发表于 2016-8-10 13:34
上面的“[ 4221.634060] gpio_set_value(gpio3_16, 0->1(1)) // 设置为0,灯灭”输入错误,应该是:

[ 4 ...

您好:
    您在初始化GPIO引脚时,为什么将其定义为input,您是照着LED的初始化过程来做的吗?

liuzhu 发表于 2016-8-12 15:58:39

飞凌-chongzi 发表于 2016-8-12 13:33
您好:
    您在初始化GPIO引脚时,为什么将其定义为input,您是照着LED的初始化过程来做的吗?

我也觉得奇怪啊,但LED的初始化也是这么写的啊?

liuzhu 发表于 2016-8-16 17:49:43

看来是没有下文了。。。

飞凌-chongzi 发表于 2016-8-17 09:59:44

liuzhu 发表于 2016-8-16 17:49
看来是没有下文了。。。

您好:
    不好意思,关于您的问题我现在调时间给您试一下,因为我没做过类似工作,另外事情也较多,所以咱们一起做一下,耽搁太长希望您谅解
页: [1]
查看完整版本: OK335xS GPIO 无法输出的问题