Part Number:AM3352
操作步骤:
echo 111 > /sys/class/gpio/export
echo 110 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio111/direction //此时用 cat direction 显示为 in
echo out > /sys/class/gpio/gpio110/direction //此时用 cat direction 显示为 out
cd /sys/class/gpio/gpio110
echo 1 > value //此时万用表测量已经输出3.3V
cd /sys/class/gpio/gpio111
cat value //显示结果为0,此时已经短接 gpio111/gpio110 ,万用表测出为 3.3V,有试过执行 echo rising > edge 上拉,依旧每变化
把两个 gpio 输入输出方向设置操作结果依旧无法读取 gpio 输入的变化。
开机关于gpio的log如下:
BobLu:
意思是两个gpio交换输入输出方向后,输出还是正常,但输入读不到? 如果是的话,那说明你的gpio号和物理芯片引脚是对应上的
1. 可能是设备树配置问题?在这种情况下需要配置为PIN_INPUT
2. 有换个硬件试一下嘛?
,
Chauncy ruan:
非常感谢你的回答,是的,gpio号和物理是引脚的对应得上的,我这边在设备树里没有配置过GPIO的direction属性,它不应该是默认输入/输出模式的吗?
,
BobLu:
你可以试一下设置引脚为输出状态时,再读取同一个引脚的输入,看在输出1、0时,本引脚的状态是否自己能读对,此时最好把两个io口之间断开。
,
Chauncy ruan:
这个是有试过的,在输出时,cat value 读取到的状态是能够正确读取,只有在设为输入时,value 就会一直是0
,
Shine:
建议先检查一下设备树设置。看一下下面的帖子是否能提供点思路。https://e2e.ti.com/support/processors-group/processors/f/processors-forum/707088/linux-am3352-unable-to-read-gpio-input