lb8820265 发表于 2020-9-23 22:35

【树莓派4B测评】树莓派4引脚功能以及操作方法

<div class='showpostmsg'> 本帖最后由 lb8820265 于 2020-9-23 22:35 编辑

<p style="text-align:justify"><span style="font-size:16px;">树莓派与其他PC类的Linux系统最大的区别就是树莓派拥有众多的外设接口,包括GPIO、SPI、I2C、UART、PWM。可以连接更多的硬件,下图是树莓派支持的外设图:</span></p>

<p><span style="font-size:16px;">由于树莓派操作外设接口并不是直接操作寄存器,而是调用第三方库,从这个方面来说树莓派并不能完全称之为开源。</span></p>

<p><strong><span style="font-size:20px;">命名方案</span></strong></p>

<p><span style="font-size:16px;">树莓派接口的有三种命名方案:</span></p>

<p><span style="font-size:16px;">1. WiringPi 编号</span></p>

<p><span style="font-size:16px;">2. BCM编号</span></p>

<p><span style="font-size:16px;">3. 物理编号(Physical &ndash; Number)</span></p>

<p><span style="font-size:16px;">WiringPi 编号是功能接线的引脚号(如TXD、PWM0等等);BCM编号是 Broadcom 针脚号,也即是通常称的GPIO;物理编号是PCB板上针脚的物理位置对应的编号(1~40)。详细如下所示。</span></p>

<p><span style="font-size:16px;">操作接口主要有两种库:Python GPIO库和WiringPi库。</span></p>

<p><strong><span style="font-size:20px;">Python库:</span></strong></p>

<p><span style="font-size:16px;">Python GPIO已经集成到了树莓派内核,为树莓派官方资料中推荐且容易上手。PythonGPIO是一个小型的Python库,可以帮助用户完成raspberry相关IO口操作,比如引脚电平输入,电平输出,外部电平中断检测,PWM输出。但是PythonGPIO库还没有支持SPI、I2C等总线接口。</span></p>

<p><span style="font-size:16px;">树莓派默认是安装了PythonGPIO库,如果没有可以输入:</span></p>

<pre>
<code>Sudo apt-get install python-rpi.gpio</code></pre>

<p><span style="font-size:16px;">打开Thonny输入如下代码:</span></p>

<pre>
<code class="language-python">import RPi.GPIO as GPIO
import time
# BOARD编号方式,基于插座引脚编号
GPIO.setmode(GPIO.BOARD)
# 输出模式
GPIO.setup(11, GPIO.OUT)

while True:
    GPIO.output(11, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(11, GPIO.LOW)
    time.sleep(1)</code></pre>

<p><span style="font-size:16px;">作用为让11号物理引脚电平每秒翻转一次。</span></p>

<p><span style="font-size:16px;">想了解更多可以访问官方的例程库:</span></p>

<p><span style="font-size:16px;"><a href="https://sourceforge.net/p/raspberry-gpio-python/wiki/Examples/"><u><span class="15"><span style="color:#0000ff"><span style="text-decoration:underline">https://sourceforge.net/p/raspberry-gpio-python/wiki/Examples/</span></span></span></u></a></span></p>

<p><strong><span style="font-size:20px;">WiringPi库:</span></strong></p>

<p><span style="font-size:16px;">树莓派操作系统默认安装了wiringpi,如果没有,输入如下命令:</span></p>

<pre>
<code>sudo apt-get install wiringpi</code></pre>

<p><span style="font-size:16px;">wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。可以操作所有的外设接口。</span></p>

<p><span style="font-size:16px;">在文档编辑器中输入如下代码:</span></p>

<pre>
<code class="language-cpp">#include &lt;wiringPi.h&gt;
int main (void)
{
wiringPiSetup () ;
pinMode (0, OUTPUT) ;//0是指WiringPi编号0,等于物理编号11
for (;;)
{
    digitalWrite (0, HIGH) ; delay (500) ;
    digitalWrite (0,LOW) ; delay (500) ;
}
return 0 ;
}</code></pre>

<p><span style="font-size:16px;">保存为blink.c,然后在终端中输入如下代码:</span></p>

<pre>
<code>gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink</code></pre>

<p><span style="font-size:16px;">该代码的效果就是将物理引脚11引脚一秒翻转一次。</span></p>

<p><span style="font-size:16px;">想了解更多可以访问官方的例程库:</span></p>

<p><span style="font-size:16px;"><a href="http://wiringpi.com/"><u><span class="15"><span style="color:#0000ff"><span style="text-decoration:underline">http://wiringpi.com/</span></span></span></u></a></span></p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

lcofjp 发表于 2020-9-24 08:53

<p>感谢分享!</p>

freebsder 发表于 2020-9-24 21:24

<p>看着很像arduino的操作风格</p>
页: [1]
查看完整版本: 【树莓派4B测评】树莓派4引脚功能以及操作方法