hi:
我想请教下,我设置GPIO0_3输出并拉高然后拉低,这个时候读GPIO_DATAIN没有变化,是怎么回事?
通过读0x44e07134,确认该IO口已经设置为输出,然后写0x44e0713c为0x8,然后通过读0x44e07138,发现依旧值为0.
请问这个是怎么回事?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
hi:
我想请教下,我设置GPIO0_3输出并拉高然后拉低,这个时候读GPIO_DATAIN没有变化,是怎么回事?
通过读0x44e07134,确认该IO口已经设置为输出,然后写0x44e0713c为0x8,然后通过读0x44e07138,发现依旧值为0.
请问这个是怎么回事?
一般读取GPIO DATAIN的状态,应该是设成内部上下拉的。
您的意思是做输出的时候,读取PIN脚状态是通过GPIO_DATAOUT值来获取,做输入的时候,需要配置GPIO的内部上拉或则下拉,然后读取GPIO_DATAIN的值来获取,对吗,我做试验试试。
我做了试验,在配置pinmux的配置成输入并内部上拉,我们的板子上gpio0_2有着上拉电阻,因此在未操作的时候,测量pin脚值为高,读0x138的值相应位也是1.短接地该pin脚,读0x138相应位的值为0.即输入的时候,外部拉高拉低,0x138相应位有着变化。然后通过api设置该gpio为输出,并拉高拉低,测量该pin脚,状态和输出的状态一样,并且0x138的相应位的值也根据拉高拉低变化。也就是说在初始化配置成输入后,DATAIN寄存器的刷新正常。
但是在Pinmux配置成输出后,读0x138的值和pin脚当前状态值不一致,通过api拉高或则拉低,0x138的值未变化,然后通过api设置成输入,外部拉高拉低该pin脚,0x138同样未变化,感觉不起作用了。
GPIO配成输出如果想读取外部电平值,就不用设为内部上下拉了。