什么是 gpioGPIO 是 General Purpose Input Output 的缩写,即“通用输入输出”。Raspber
什么是 gpio
GPIO 是 General Purpose Input Output 的缩写,即“通用输入输出”。Raspberry Pi 有两列 GPIO 引脚, Raspberry Pi 通过这两行引脚进行一些硬件上的扩展,与传感器进行交互等等。
Raspberry Pi B+/2B/3B/3B+/Zero 引脚图
简单的讲,每一个 GPIO 引脚都有两种模式:输出模式(OUTPUT)和输入模式(INPUT)。输出模式类似于一个电源,Raspberry Pi 可以控制这个电源是否向外供电,比如打开外部的 LED 小灯,当然最有用的还是向外部设备发送信号。和输出模式相反,输入模式是接收外部设备发来的信号。其中还包含两种特殊的输入模式:上拉输入(INPUT_PULLUP)和下拉输入(INPUT_PULLDOWN)。上拉输入就是内部的上拉电阻接 VCC ,将该引脚设置为高电平,下拉输入则相反。
GPIO 通常采用标准逻辑电平,即高电平和低电平,用二进制 0 和 1 表示。在这两值中间还有阈值电平,即高电平和低电平之间的界限。Arduino 会将 -0.5 ~ 1.5 V 读取为低电平,3 ~ 5.5 V 读取为高电平, Raspberry Pi 未查到相关资料。GPIO 还可用于中断请求,即设置 GPIO 为输入模式,值达到相应的要求时进行中断。
相关类
GPIO 操作主要依赖于 GpioController 类 。这个类位于 System.Device.Gpio 名称空间下。
GpioController代码语言:javascript代码运行次数:0运行复制// GpioController 即 GPIO 控制器// GPIO 引脚依靠 GpioController 初始化public class GpioController : IGpioController, IDisposable{ // 构造函数 public GpioController(); // PinNumberingScheme 即引脚编号方案,是一个枚举类型,包含 Board 和 Logical 两个值。 // 可以看上方的 Raspberry Pi 引脚图,以 GPIO 17 为例,如果实例化时选 Logical ,那么打开引脚时需要填写 17。 // 如果实例化时选 Board ,那么打开引脚时需要填写右侧灰色方框内的值,即 11 。 public GpioController(PinNumberingScheme numbering); // GpioDriver 用于指定要使用的 GPIO 驱动,比如 libgpiod 或 sysfs public GpioController(PinNumberingScheme numberingScheme, GpioDriver driver); // 方法 // 打开 GPIO 引脚 // pinNumber 需要填写和 PinNumberingScheme 相对应的值。 // PinMode 是设置 GPIO 的模式,如输入、输出、上拉、下拉 public void OpenPin(int pinNumber, PinMode mode); // 关闭 GPIO 引脚 public void ClosePin(int pinNumber); // 判断某个引脚是否打开 // 注意:引脚连续打开会抛出异常 public bool IsPinOpen(int pinNumber); // 读取指定引脚的值 public PinValue Read(int pinNumber); // 向指定的引脚写入值 public void Write(int pinNumber, PinValue value); // 为指定引脚的值改变时注册回调(即上文中提到的 GPIO 中断) // PinEventTypes 是值改变的类型,包括上升沿(Rising,0->1)和下降沿(Falling,1->0),注意当设置为 None 时不会触发 // PinChangeEventHandler 为回调事件 public void RegisterCallbackForPinValueChangedEvent(int pinNumber, PinEventTypes eventTypes, PinChangeEventHandler callback); // 为指定引脚的值改变时注销回调 public void UnregisterCallbackForPinValueChangedEvent(int pinNumber, PinChangeEventHandler callback);}登录后复制
菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。
版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理
Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2023003002号-8
本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源