上传者: 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** 来实现各种有趣的应用。