树莓派学习系列7——GPIO基础
来源:互联网 发布:屋顶光伏支架技术数据 编辑:程序博客网 时间:2024/06/18 15:58
前言
原来学单片机的时候,就是通过一系列的引脚来控制单片机。终于学到了通过引脚来控制树莓派了。话不多说咱们先来了解基础。
GPIO简介
a.全称
General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器.
b.特性
GPIO具有更低的功率损耗(大约1μA,μC的工作电流则为100μA)
c.功能
与电脑内部进行数据交互(传感器的数据处理;步进电机等)
d.硬件
GPxCON 控制引脚功能;GPxDAT用于读写引脚数据。另外,GPxUP用于确定是否使用上拉电阻。 x为A,B,,H/J。
1. GPxCON 寄存器
用于配置引脚功能。
PORT A 与 PORT B~PORT H/J 在功能选择上有所不同,GPACON 中每一位对应一根引脚,共 23 个引脚。当某位被设为 0 时候,相应引脚为 输出引脚。此时我们可以在GPADAT 中相应的写入 1或者 0 来让此引脚输出高电平或者低电平;当某位被设为1时,相应引脚为地址线或用于地址控制,此时GPADATA无用。
一般而言 GPACON 通常被设为 1 ,以便访问外部器件。
PORT B~PORT H/J
在寄存器操作方面完全相同,GPxCON 中每两位控制一根引脚,
00 输入 01 输出
10 特殊功能 11 保留不用
2. GPxDAT 寄存器
GPxDAT用于读写引脚,当引脚被设为输入时候,读此寄存器可知道相应引脚的电平状态高还是低,当引脚被设为输出时候,写此寄存器的位,可令引脚输出高电平还是低电平。
3. GPxUP寄存器
GPxUP寄存器某位为1时,相应管脚没有内部上拉电阻;为 0 时候 相应管脚有内部上拉电阻。
上拉电阻作用在于,当GPIO 引脚处于第三种状态时候,既不是输出高电平,也不是输出低电平。而是呈现高阻态,相当于没有接芯片。它的电平状态由上下拉电阻决定。
GPIO编程
1.GPIO库及语言
a.RPi.GPIO------python库
支持Board Pin和BCM GPIO两种编号
b.wiringPi-------C库
支持wiringPi Pin和BCM GPIO两种编号
2.编号规范
a.树莓派主芯片提供商Broadcom的编号方法
GPIO12对应的序号就是12,即GPIOx对应序号x。
b.树莓派板子上的自然编号(BOARD)
图上灰色 对应的编号,比如GPIO12对应的编号是32。
c.wiringPi编号方式
这个图一没有这一列,图二网上随便一个图。有一列专门对应该编号方式的编号,找到板子上想要控制的GPIO再对应该编号方式的编号即可。如:GPIO25对应编号就是25。
编程步骤
1.python
安装:sudo apt-get install python-RPi.GPIO
检测:
sudo python
import RPi.GPIO as GPIO
GPIO.RPI_REVISION
import RPi.GPIO as GPIO //导入库/*设置GPIO的编号方式*/GPIO.setmode(GPIO.BCM) //设置GPIO的编号方式为BCM/*设置GPIO引脚号及对应的工作方式*/GPIO.setup(24,GPIO.OUT) //设置GPIO24为输出模式/*接下来编写你想要进行的操作*/
2.C语言wiringPi
安装:通过GIT获得wiringPi的源代码
cd wiringPi
#include <wiringPi.h> //添加GPIO库int main(){wiringPiSetup(); //初始化wiringPipinMode(1,OUTPUT); //void pinMode(int pin,int mode) 引脚+模式while(1){digitalWrite(1,HIGH); //1号口写高电平delay(500);//延迟500msdigitalWrite(1,LOW);delay(500);}return 0;}
硬件准备
1.杜邦线
2.面包板
面包板的特点:+号和-号是一竖条都是接通的
中间的都是一排是接通的。中间的分隔也是分隔的
(可以自己实践一下确认)
- 树莓派学习系列7——GPIO基础
- 树莓派学习系列8——使用树莓派上的GPIO接口
- 树莓派开发系列教程9——树莓派GPIO控制
- 树莓派开发系列教程9——树莓派GPIO控制
- 树莓派开发系列教程9——树莓派GPIO控制
- 树莓派开发系列教程9——树莓派GPIO控制
- 树莓派开发系列教程9——树莓派GPIO控制
- 裸机系列——GPIO口上拉电阻
- STM32F1x系列——GPIO操作
- 树莓派学习笔记——GPIO功能学习
- 02-树莓派学习笔记——GPIO功能学习
- 树莓派学习笔记——GPIO功能学习
- 树莓派GPIO基础
- 【Linux基础系列之】gpio系统
- 树莓派学习笔记——wiringPi GPIO使用详解
- 树莓派学习笔记——Shell脚本操作GPIO
- 树莓派学习笔记——RPi.GPIO 流水灯
- Oracle 11g系列—7—SQL 基础学习
- 超好用的uthash万岁~~~
- java 设计模式 之 桥接
- Android将手机相册图片展示到GridView中
- 将Python代码嵌入到C++程序
- C++开发者都应该使用的10个C++11特性
- 树莓派学习系列7——GPIO基础
- python类class学习笔记
- 在C#中调用python方法
- 欢迎使用CSDN-markdown编辑器
- java 高并发
- 输入两个长整数相加算法
- R语言-日期与时间格式
- 使用AIDL实现IPC通信之——实现服务端主动发送数据给客户端
- mysql connect query