0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用树莓派控制GPIO教程

CHANBAEK 来源:头条号科G栈 作者:头条号科G栈 2023-03-24 11:26 次阅读

平台:树莓派 bcm2835 Raspberry Pi 3 Model B Rev 1.2

poYBAGQdGFOAGmsHAAKR98JiafE578.jpg

pYYBAGQdGFSAU6GmAABPVqbulAs111.jpg

应用层控制gpio目前知道有两种方式——通过gpio设备文件和内存映射。

第一种,通过gpio设备文件

设备文件位于/sys/class/gpio目录下

poYBAGQdGFSAYPvLAABdJwERqlQ385.jpg

通过向export中写gpio号可以挂载对应的gpio,gpio号是bcm的号,不是wiringPi的。

pYYBAGQdGFaAb9PuAAMjlemaGx4550.jpg

挂载后在gpio的文件夹下会有配置接口文件,向这些接口文件写命令就能控制gpio了。

poYBAGQdGFeAZVnDAAEhMwe2MlI293.jpg

上面用echo这种方式写成shell脚本就可以用脚本控制gpio了。

如果通过c语言控制,使用Linux操作文件的API编程即可。

pYYBAGQdGFiAUmgFAAGDPQk8JDI690.jpg

第二种,内存映射

将gpio的地址映射到内存空间,之后所有对这片内存的操作就是对gpio的操作。使用mmap函数实现映射。物理内存的设备文件是/dev/mem。

poYBAGQdGFiALjLtAABPaPhTz4g236.jpg

bcm2835的外设地址是0x3f000000,gpio的地址是外设地址基础上偏移0x200000。

pYYBAGQdGFmAFh2MAADG8pGmlbc020.jpg

使用open函数可以打开mem设备文件,之后使用mmap函数映射,其返回值就是分配的内存空间的起始地址。

poYBAGQdGFqADo81AAEurVNG0M0064.jpg

注:必须有管理员权限才能打开mem设备文件,所以运行命令时必须加上sudo。

gpio有41个寄存器,每个寄存器都是32位的。

pYYBAGQdGFuATg0HAAK74GilLkM933.jpg

前六个用来设置gpio的功能,前五个寄存器每个设置10个gpio,最后一个设置4个,三个位设置一种功能。

poYBAGQdGFyACJW0AAJmNLQaiYw773.jpg

gpio的设置寄存器是第8和9,清除寄存器是第11和12。一个位对应一个gpio。

pYYBAGQdGF2AXBIgAAEPwGAj7po002.jpg

poYBAGQdGF6AApiuAADQ_8Pyz-w458.jpg

根据以上寄存器的布局方式,可以使用下面的代码来设置和控制gpio。图中小写gpio就是映射后返回的地址指针,g是gpio号。

pYYBAGQdGF-AaE43AAH3kMQp_5s997.jpg

poYBAGQdGGCAFthCAAC_NwUqB48471.jpg

小结: 第一种方式比较适合对单独gpio的控制,比如调试和测试,更适用脚本编程;第二种方式适合c代码编程,更加通用方便。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    3071

    浏览量

    74414
  • 函数
    +关注

    关注

    3

    文章

    4350

    浏览量

    63051
  • 命令
    +关注

    关注

    5

    文章

    698

    浏览量

    22146
  • GPIO
    +关注

    关注

    16

    文章

    1217

    浏览量

    52485
  • 树莓派
    +关注

    关注

    117

    文章

    1711

    浏览量

    105930
收藏 人收藏

    评论

    相关推荐

    树莓控制gpio

    树莓在哪里编写程序控制gpio引脚
    发表于 07-23 09:05

    树莓是如何控制GPIO输入输出的?

    ://shumeipai.nxez.com/2016/09/28/rpi-gpio-module-inputs.html#]https://blog.csdn.net/qq_41204464
    发表于 07-08 07:42

    通过Python RPi.GPIO控制树莓引脚

    零、汇总通过Python RPi.GPIO 控制树莓引脚输出高低电平、脉冲电平驱动器接收接收树莓
    发表于 08-31 07:59

    树莓gpio应用

    树莓现在越来越火,网上树莓的资料也越来越多。树莓源自英国,国外嵌入式开源领域具有良好的分享
    发表于 11-09 15:10 4229次阅读

    树莓gpio接口及编程方法

    树莓现在越来越火,网上树莓的资料也越来越多。树莓源自英国,国外嵌入式开源领域具有良好的分享
    发表于 11-22 11:54 6.5w次阅读

    树莓gpio有什么用_怎么用

    树莓现在越来越火,网上树莓的资料也越来越多。树莓源自英国,国外嵌入式开源领域具有良好的分享
    发表于 12-06 09:05 1.6w次阅读

    用网页控制树莓GPIO引脚

    电子发烧友网站提供《用网页控制树莓GPIO引脚.zip》资料免费下载
    发表于 11-16 14:57 1次下载
    用网页<b class='flag-5'>控制</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>的<b class='flag-5'>GPIO</b>引脚

    树莓驱动步进电机

     闲了无聊,想用树莓驱动步进电机。 测试了两天终于OK了 下图是DM422C接步进电机和树莓GPIO 步进电机红绿 一组, 黄蓝 一组
    发表于 03-21 14:26 0次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>驱动步进电机

    树莓控制步进电机

    树莓控制步进电机 前言 设备 连接 源码 前言 测试步进电机 设备 名称 型号 树莓 3B+ 步进电机 28BYJ-48-5V 步进电机
    发表于 03-21 11:39 0次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>控制</b>步进电机

    树莓控制PWM控制电机转速

    python库配置 安装GPIO库 sudo apt-get install python3-rpi.gpio 电机控制程序 import time import RPi.GPIO a
    发表于 03-31 10:59 3次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>控制</b>PWM<b class='flag-5'>控制</b>电机转速

    树莓控制继电器

    树莓控制继电器命令行输入gpio readall查看树莓io口属性可以看到被分为左右两侧,左
    发表于 04-21 11:50 0次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>控制</b>继电器

    Linux树莓开发之wiringPi库,树莓控制继电器

    wiringPi库是树莓的IO控制库,使用C语言开发,提供了非常多的接口供使用,包括GPIO,中断,多线程,等。 在树莓
    发表于 05-04 11:10 7次下载
    Linux<b class='flag-5'>树莓</b><b class='flag-5'>派</b>开发之wiringPi库,<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>控制</b>继电器

    使用树莓GPIO口点亮双色LED灯

    上一篇文章向大家介绍树莓的硬件部分、安装操作系统及基础设置。这篇文章将介绍树莓的强大的开发功能口——GPIO,以及利用
    的头像 发表于 07-04 11:34 2619次阅读
    使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>GPIO</b>口点亮双色LED灯

    树莓gpio有什么用,树莓gpio接口及编程方法

    /Output,通用输入/输出)是树莓提供的一组可编程的引脚,是树莓与外部世界进行交互的重要桥梁。通过GPIO,用户可以
    的头像 发表于 10-22 18:09 1334次阅读

    GPIO树莓中的应用

    直接控制和读取外部硬件设备的状态。 1. GPIO简介 GPIO树莓派上用于与外部世界交互的一组引脚。这些引脚可以被配置为输入或输出模式,从而实现对外部设备的
    的头像 发表于 01-09 09:41 234次阅读