官方函數說明
Reference | Wiring Pi
- Raspberry Pi specific functions 初始化、GPIO控制函數
- Timing functions 時間控制函數
- Program priority, timing and threads 優先級、中斷以及多線程函數
- Serial library 序列槽控制函數
- SPI library SPI控制函數
- I2C library I2C控制函數
- Shift library 移位處理函數
- Software PWM library 軟體PWM通用處理函數
- Software tone library 軟體PWM音頻處理函數
一、wiringPi初始化函數
使用wiringPi時,必須先初始化樹莓派,否則程式不能正常工作。
函數 | 功能 | 傳回值 | 權限需求 | 備注 |
int wiringPiSetup (void) | 根據wiringPi引腳編号系統初始化樹莓派 | 傳回執行狀态值,當傳回-1時表示失敗。 | root | 最常用 |
int wiringPiSetupGpio (void) | 根據BCM引腳編号系統初始化樹莓派 | 傳回執行狀态值,當傳回-1時表示失敗。 | root | |
int wiringPiSetupPhys (void) | 根據Broadcom晶片的GPIO管腳号初始化樹莓派 | 傳回執行狀态值,當傳回-1時表示失敗。 | root | 不常用 |
int wiringPiSetupSys (void) | 由系統接管,使用/sys/class/gpio接口,不直接操作硬體,通過shell或者直接system()函數來調用gpio指令 | 傳回執行狀态值,當傳回-1時表示失敗。 | -- | 根據情況使用 |
二、通用GPIO控制函數
函數 | 功能 | 參數說明 | 傳回值 | 權限需求 | 備注 |
void pinMode (int pin, int mode) | 配置引腳的IO模式 | pin 引腳編号,由初始化函數決定采用哪種編号系統 mode 指定引腳的IO模式 可取的值:INPUT、OUTPUT、PWM_OUTPUT,GPIO_CLOCK | -- | -- | 僅wiringPi Pin1(BCM Pin18)支援PWM輸出 僅wiringPi Pin7(BCM Pin4) 支援CLK輸出 |
void digitalWrite (int pin, int value) | 讓一個已經配置為輸出模式的引腳輸出高/低電平信号 | pin 引腳編号,由初始化函數決定采用哪種編号系統 value 引腳輸出的電平值 HIGH = 高電平 LOW = 低電平 | -- | -- | |
int digitalRead (int pin) | 讀取一個引腳的電平值 | pin 引腳編号,由初始化函數決定采用哪種編号系統 | 傳回引腳上的電平狀态值 0 = LOW 1 = HIGH | -- | |
void analogWrite(int pin, int value) | 模拟量的輸出 | pin 引腳編号,由初始化函數決定采用哪種編号系統 value 輸出的模拟量的數字量化值 | -- | -- | 樹莓派的引腳本身是不支援AD轉換的,也就是不能使用模拟量的API, 需要增加另外的子產品,包括但不限于Gertboard和quick2Wire analog board擴充闆 |
int analogRead (int pin) | 模拟量的輸入 | pin 引腳編号,由初始化函數決定采用哪種編号系統 | 傳回模拟量的數字量化值 | -- | 樹莓派的引腳本身是不支援AD轉換的,也就是不能使用模拟量的API, 需要增加另外的子產品,包括但不限于Gertboard擴充闆 |
void pwmWrite (int pin, int value) | 輸出一個值到PWM寄存器,控制PWM輸出。 | pin 引腳編号,由初始化函數決定采用哪種編号系統 value 寫入到PWM寄存器的值,範圍在0~1024之間。 | -- | -- | pin隻能是wiringPi 引腳編号下的1腳(BCM下的18腳) |
void pullUpDnControl (int pin, int pud) | pin 引腳編号,由初始化函數決定采用哪種編号系統 pud 拉電阻模式 PUD_OFF 不啟用任何拉電阻。關閉拉電阻。 PUD_DOWN 啟用下拉電阻,引腳電平拉到GND PUD_UP 啟用上拉電阻,引腳電平拉到3.3v | -- | -- | 樹莓派内部的拉電阻≈50kΩ |
三、時間控制函數
功能 | 參數說明 | 傳回值 | 權限需求 | 備注 | |
unsigned int millis (void) | 傳回一個從你的程式執行 初始化函數(比如wiringPiSetup)到執行本函數時所經過的時間,以毫秒計數。 | -- | 傳回類型是unsigned int,最大可記錄 大約49天的毫秒時長。 | -- | |
unsigned int micros (void) | 傳回一個從你的程式執行 初始化函數(比如wiringPiSetup)到執行本函數時所經過的時間,以微秒計數。 | -- | 傳回類型是unsigned int,最大可記錄 大約71分鐘的時長。 | -- | |
void delay (unsigned int howLong) | 将目前執行流暫停并等待指定的毫秒數後跳出。 | howLong 參數是unsigned int 類型,最大延時時間可達49天 | -- | -- | 因為Linux本身是多線程的,是以實際暫停時間可能會長一些。 |
void delayMicroseconds (unsigned int howLong) | 将目前執行流暫停并等待指定的微秒數後跳出。 | howLong 參數是unsigned int 類型,最大延時時間可達71分鐘 | -- | -- | 因為Linux本身是多線程的,是以實際暫停時間可能會長一些。 |
四、中斷&優先級處理函數
五、多線程處理函數
六、序列槽控制函數
七、SPI控制函數
八、I2C控制函數
九、移位處理函數
十、PWM控制函數
未 完 待 續