GPIO
<p>[TOC]</p>
<h2>GPIO的使用</h2>
<h3>1、接口定义</h3>
<ul>
<li><strong>DO:</strong>
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=f44fa033916f231a3072b27d2d5c93d7&amp;file=file.png" alt="" /></li>
<li><strong>DI:</strong>
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=2ad3b66fccef7e834926a64c6a6c2bc4&amp;file=file.png" alt="" /></li>
</ul>
<h3>2、GPIO的导出</h3>
<p>gpio 的控制节点在目录:<code>/sys/class/gpio/</code></p>
<p>导出节点命令:</p>
<pre><code class="language-shell">//导出单个gpio
console: # echo 41 &gt;/sys/class/gpio/export
//使用 for 循环导出多个 IO 节点:
cd /sys/class/gpio
for i in {41,43,42,44,32,33,34,35,102,106,128,131,20,134,123,124}; do echo $i &gt;export; done
</code></pre>
<h3>3、DO测试:</h3>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=a6a4698e82849aa03a719d7de64141f6&amp;file=file.png" alt="" /></p>
<p><code>开关位于NPN时</code></p>
<p>8DO的value=0时(默认),8DO与DOGND不导通</p>
<p>赋值8DO的value=1时,8DO与DOGND导通</p>
<p> </p>
<p><code>开关位于PNP时,源型:输出电流流向负载</code></p>
<ul>
<li>接线:24V正接24_IN ,24V负接DOGON</li>
</ul>
<p>8DO的value=0时(默认),8DO与DOGND电压为0</p>
<p>赋值8DO的value=1时,8DO与DOGND电压为+24V</p>
<h3>4、DI测试</h3>
<p><code>干接点</code></p>
<p>8DI与DIGND断开时(有24V电压),6DI的value=0</p>
<p>8DI与DIGND短接时(0V电压),6DI的value=1</p>
<p> </p>
<p><code>湿接点</code></p>
<ul>
<li>接线:24V正-接DI,24V负接DI_GND和DI_COM一起</li>
</ul>
<p>8DI,DI低电平或者无电源输入时(0V),8DI的value=0</p>
<p>8DI,DI高电平输入时(+24V),8DI的value=1</p>
<h3>5、IO控制方法</h3>
<ul>
<li>单个节点控制,以 gpio41 为例:</li>
</ul>
<pre><code class="language-shell">//设置 gpio41 为输出方向:
echo out &gt;/sys/class/gpio/gpio41/direction
//设置 gpio41 输出低电平:
echo 0 &gt;/sys/class/gpio/gpio41/value
//设置 gpio41 输出高电平:
echo 1 &gt;/sys/class/gpio/gpio41/value
//IO为输出方向时:使用电压表测量pin脚3(gpio41)对pin脚1的电压是否可控:低电平为0v,高电平为3.3v
//设置 gpio41 为输入:
echo in &gt;/sys/class/gpio/gpio41/direction
</code></pre>