wiringPi用户手册v001

上传者: poonjun | 上传时间: 2019-12-22 19:34:18 | 文件大小: 764KB | 文件类型: pdf
### wiringPi用户手册知识点概述 #### 1. wiringPi简介 **wiringPi** 是一个由 Gordon Henderson 编写并维护的 C 语言类库,主要用于简化 Raspberry Pi 的 GPIO(General Purpose Input Output,通用输入输出)接口编程。该库允许开发者以更简单的方式访问和控制 Raspberry Pi 的 GPIO 引脚,而无需深入了解底层硬件细节。 **特点**: - **易用性**:提供了一系列简单的函数来控制 GPIO 引脚。 - **兼容性**:支持多种硬件平台,如 Raspberry Pi Model B+。 - **功能丰富**:除了基本的 GPIO 控制外,还提供了对 PWM、I2C、SPI 等高级功能的支持。 #### 2. DevLib简介 DevLib 并未在给定内容中具体提及,但可以推测其可能是指 **wiringPi** 库中的某个子模块或特定功能。在实际应用中,wiringPi 可能包含了一些辅助性的开发库,例如用于特定硬件模块的驱动或简化特定任务的库。 #### 3. PiFace简介 **PiFace** 是一款为 Raspberry Pi 设计的扩展板,通常用于教学和原型设计。通过使用 **wiringPi** 库,可以轻松地控制 PiFace 上的按钮、LED 和继电器等组件。PiFace 支持数字 I/O 功能,并且可以与 Raspberry Pi 的 GPIO 引脚进行无缝连接。 #### 4. Gertboard简介 **Gertboard** 是另一个专门为 Raspberry Pi 设计的扩展板,它提供了一系列更复杂的 GPIO 接口,包括模拟输入/输出、PWM 和 SPI 接口。通过 **wiringPi**,开发者可以方便地控制这些高级功能。 #### 5. wiringPi扩展 **wiringPi** 还支持一系列扩展库,这些库进一步增强了其功能,包括但不限于: - **I2C**:用于与使用 I2C 协议的设备进行通信。 - **SPI**:用于高速数据传输,常用于连接高带宽设备。 - **串口库**:用于串行通信,支持 UART 通信。 - **软件 PWM 库**:用于模拟 PWM 信号。 - **时间函数**:提供时间相关的操作,如延迟等。 - **优先级/时间/线程**:提供多线程支持及中断处理等功能。 #### 6. 安装与配置 **wiringPi** 的安装过程非常直观,可以通过以下几种方式进行: - **使用 git 工具**:这是最常见的方式之一,通过 Git 克隆官方仓库,然后按照说明进行编译和安装。 - **离线安装**:如果网络受限,也可以下载预编译的二进制文件进行安装。 - **测试安装**:安装完成后,可以通过运行示例程序来确保一切正常。 #### 7. 核心函数 **wiringPi** 提供了一系列核心函数,用于控制 GPIO 引脚: - **pinMode()**:设置引脚的工作模式(输入或输出)。 - **digitalWrite()**:向指定引脚写入高低电平。 - **digitalRead()**:读取指定引脚的状态。 - **analogRead()**:读取模拟输入值。 - **pwmWrite()**:设置指定引脚的 PWM 值。 - **pullUpDnControl()**:设置上拉/下拉电阻。 #### 8. I2C库 **wiringPi** 的 I2C 库提供了一系列函数来实现 I2C 设备的读写操作: - **wiringPiI2CSetup()**:初始化 I2C 总线。 - **wiringPiI2CRead()**:从 I2C 设备读取数据。 - **wiringPiI2CWrite()**:向 I2C 设备写入数据。 - **wiringPiI2CWriteReg8()/wiringPiI2CWriteReg16()**:写入寄存器。 - **wiringPiI2CReadReg8()/wiringPiI2CReadReg16()**:读取寄存器。 #### 9. SPI库 SPI 库支持 SPI 数据的读写操作: - **wiringPiSPISetup()**:初始化 SPI 总线。 - **wiringPiSPIDataRW()**:进行 SPI 数据交换。 #### 10. 串口库 串口库支持 UART 通信: - **serialOpen()**:打开串口。 - **serialClose()**:关闭串口。 - **serialPutchar()**:发送单个字符。 - **serialPuts()**:发送字符串。 - **serialPrintf()**:格式化输出。 - **serialDataAvail()**:检查是否有数据可读。 - **serialGetchar()**:读取单个字符。 - **serialFlush()**:清除缓冲区。 #### 11. 软件 PWM 库 软件 PWM 库用于模拟硬件 PWM 信号: - **softPwmCreate()**:创建 PWM 引脚。 - **softPwmWrite()**:写入 PWM 值。 #### 12. 时间函数 时间函数用于各种时间相关的操作: - **millis()**:获取自上电以来的时间(毫秒)。 - **micros()**:获取自上电以来的时间(微秒)。 - **delay()**:延迟指定毫秒数。 - **delayMicroseconds()**:延迟指定微秒数。 #### 13. 优先级/时间/线程 此部分提供了高级功能,如多线程支持和中断处理: - **piHiPri()**:调整线程优先级。 - **waitForInterrupt()**:等待中断。 - **wiringPiISR()**:设置中断服务程序。 - **piThreadCreate()**:创建线程。 - **piLock()/piUnlock()**:线程同步锁。 #### 14. 转换库 转换库提供了位移操作: - **shiftIn()**:读取位序列。 - **shiftOut()**:发送位序列。 #### 15. 软件音频库 软件音频库用于产生声音信号: - **softToneCreate()**:创建音频通道。 - **softToneWrite()**:写入音调值。 **wiringPi** 是一个强大的工具库,不仅提供了基本的 GPIO 操作,还支持多种高级功能,非常适合用于教学、原型设计以及小型项目开发。通过掌握以上知识点,开发者可以充分利用 **wiringPi** 来实现各种有趣的应用。

文件下载

评论信息

  • 星龙k :
    很赞,资料很详细
    2020-04-15
  • sxndwugang :
    写得非常详细,下载来学习。应该控制IO足够了
    2018-05-02
  • longlian123 :
    非常详细的资料,最近在学习这个,非常感谢
    2018-03-27
  • xufengww :
    资料很详细
    2017-10-10
  • DickLight :
    很赞,我就是想看看中断那几个常量的具体含义
    2017-08-27

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明