1.void pinMode (int pin, int mode) ;
這個函數式設置pin腳的輸入和輸出模式以及PWM的輸入和輸出模式。在wiringPi中僅僅有 pin 1 (BCM_GPIO 18)是支持PWM的輸出的。
2.void digitalWrite (int pin, int value) ;
這個函數式用來設置pin腳的高低電平的,當我們寫HIGH or LOW (1 or 0)的時候pin腳的mode必須為輸出模式。
3.void digitalWriteByte (int value) ;
這個函數能夠將8位字節寫給8個GPIO pin腳,這是設置8個pin腳值的最快的方式。
4.void pwmWrite (int pin, int value) ;
這個函數是給PWM寄存器寫入值然后控制GPIO的值的,寫入的值必須是0-1024.
5.int digitalRead (int pin) ;
這個函數是讀取GPIO的pin腳的電平高低然后返回讀取的值。
6.void pullUpDnControl (int pin, int pud) ;
這個函數是設置GPIO的pin腳是否接上拉電阻和下拉電阻的。函數的參數pud必須設置。當設置為PUD_OFF時表示沒有上拉電阻和下拉電阻。當設置為PUD_DOWN 時為下拉電阻。設置為PUD_UP是為上拉電阻。
PWM的控制:
1.pwmSetMode (int mode) ;
這個函數是設置PWM的占空比模式一般為50%占空比和占空比可調模式。
樹莓派默認是50%占空比模式,我們能夠通過PWM_MODE_BAL 和PWM_MODE_MS這兩個參數來設置。
2.pwmSetRange (unsigned int range) ;
這個函數是設置PWM寄存器寫入的范圍。一般默覺得1024.
3.pwmSetClock (int divisor) ;
這個函數的設置PWM時鍾的分頻因子。
定時函數:
1.void delay (unsigned int howLong)
這個是毫秒級的延時函數。
2.void delayMicroseconds (unsigned int howLong)
微秒級的延時函數
關於中斷的函數:
1.int waitForInterrupt (int pin, int timeOut) ;
這一個等待事件中斷函數。timeout參數是毫秒級別的參數,當為-1時代表永遠等待中斷狀態。假設錯誤發生返回值是-1,0表示超時。1表示成功中斷。
調用這個函數之前我們須要對GPIO進行初始化。
比如我們要設置GPIO 0為等待下降沿中斷:
我們須要在執行程序之前先終端執行 gpio edge 0 falling
2.int wiringPiISR (int pin, int edgeType, void (*function)(void)) ;
這個函數是利用一個函數作為參數來獲取在特定的GPIO pin腳的中斷。edge_Type參數能夠設定為 INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP.
其中斷發生的時候function將被調用。調用function之前會先清除對應的標志位。這就使得隨后的中斷不會被影響。
熟悉了這些函數后對寫GPIO的操作的應用程序會有所幫助。