樹莓派wiringPi常用的函數介紹

分類:編程 時間:2017-03-25
??

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的操作的應用程序會有所幫助。










Tags: 寄存器

文章來源:


ads
ads

相關文章
ads

相關文章

ad