树莓派wiringPi常用的函数介绍
生活随笔
收集整理的這篇文章主要介紹了
树莓派wiringPi常用的函数介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
樹莓派wiringPi常用的函數(shù)介紹
硬件初始化函數(shù):
int wiringPiSetup (void)
當(dāng)使用這個(gè)函數(shù)初始化樹莓派引腳時(shí),程序使用的是wiringPi 引腳編號表,引腳的編號為 0~16,需要root權(quán)限,返回執(zhí)行狀態(tài),-1表示失敗;
int wiringPiSetupGpio (void)
當(dāng)使用這個(gè)函數(shù)初始化樹莓派引腳時(shí),程序中使用的是BCM GPIO 引腳編號表,需要root權(quán)限,返回執(zhí)行狀態(tài),-1表示失敗。
通用GPIO控制函數(shù):
1.void pinMode (int pin, int mode) ;
這個(gè)函數(shù)式設(shè)置pin腳的輸入和輸出模式以及PWM的輸入和輸出模式。在wiringPi中只有 pin 1 (BCM_GPIO 18)是支持PWM的輸出的。
2.void digitalWrite (int pin, int value) ;
這個(gè)函數(shù)式用來設(shè)置pin腳的高低電平的,當(dāng)我們寫HIGH or LOW (1 or 0)的時(shí)候pin腳的mode必須為輸出模式。
3.void digitalWriteByte (int value) ;
這個(gè)函數(shù)可以將8位字節(jié)寫給8個(gè)GPIO pin腳,這是設(shè)置8個(gè)pin腳值的最快的方式。
4.void pwmWrite (int pin, int value) ;
這個(gè)函數(shù)是給PWM寄存器寫入值然后控制GPIO的值的,寫入的值必須是0-1024.
5.int digitalRead (int pin) ;
這個(gè)函數(shù)是讀取GPIO的pin腳的電平高低然后返回讀取的值。
6.void pullUpDnControl (int pin, int pud) ;
這個(gè)函數(shù)是設(shè)置GPIO的pin腳是否接上拉電阻和下拉電阻的。函數(shù)的參數(shù)pud必須設(shè)置,當(dāng)設(shè)置為PUD_OFF時(shí)表示沒有上拉電阻和下拉電阻,當(dāng)設(shè)置為PUD_DOWN 時(shí)為下拉電阻,設(shè)置為PUD_UP是為上拉電阻。
PWM的控制:
1.pwmSetMode (int mode) ;
這個(gè)函數(shù)是設(shè)置PWM的占空比模式一般為50%占空比和占空比可調(diào)模式。樹莓派默認(rèn)是50%占空比模式,我們可以通過PWM_MODE_BAL 和PWM_MODE_MS這兩個(gè)參數(shù)來設(shè)置。
2.pwmSetRange (unsigned int range) ;
這個(gè)函數(shù)是設(shè)置PWM寄存器寫入的范圍,一般默認(rèn)為1024.
3.pwmSetClock (int divisor) ;
這個(gè)函數(shù)的設(shè)置PWM時(shí)鐘的分頻因子。
定時(shí)函數(shù):
1.void delay (unsigned int howLong)
這個(gè)是毫秒級的延時(shí)函數(shù)。
2.void delayMicroseconds (unsigned int howLong)
微秒級的延時(shí)函數(shù)
關(guān)于中斷的函數(shù):
1.int waitForInterrupt (int pin, int timeOut) ;
這一個(gè)等待事件中斷函數(shù),timeout參數(shù)是毫秒級別的參數(shù),當(dāng)為-1時(shí)代表永遠(yuǎn)等待中斷狀態(tài)。如果發(fā)生錯(cuò)誤返回值是-1,0表示超時(shí),1表示成功中斷。調(diào)用這個(gè)函數(shù)之前我們需要對GPIO進(jìn)行初始化。例如我們要設(shè)置GPIO 0為等待下降沿中斷:我們需要在運(yùn)行程序之前先終端運(yùn)行 ? gpio edge 0 falling
2.int wiringPiISR (int pin, int edgeType, ?void (*function)(void)) ;
這個(gè)函數(shù)是利用一個(gè)函數(shù)作為參數(shù)來獲取在特定的GPIO pin腳的中斷。edge_Type參數(shù)可以設(shè)定為 INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP.
當(dāng)中斷發(fā)生的時(shí)候function將被調(diào)用,調(diào)用function之前會(huì)先清除相應(yīng)的標(biāo)志位,這就使得隨后的中斷不會(huì)被影響。
硬件初始化函數(shù):
int wiringPiSetup (void)
當(dāng)使用這個(gè)函數(shù)初始化樹莓派引腳時(shí),程序使用的是wiringPi 引腳編號表,引腳的編號為 0~16,需要root權(quán)限,返回執(zhí)行狀態(tài),-1表示失敗;
int wiringPiSetupGpio (void)
當(dāng)使用這個(gè)函數(shù)初始化樹莓派引腳時(shí),程序中使用的是BCM GPIO 引腳編號表,需要root權(quán)限,返回執(zhí)行狀態(tài),-1表示失敗。
通用GPIO控制函數(shù):
1.void pinMode (int pin, int mode) ;
這個(gè)函數(shù)式設(shè)置pin腳的輸入和輸出模式以及PWM的輸入和輸出模式。在wiringPi中只有 pin 1 (BCM_GPIO 18)是支持PWM的輸出的。
2.void digitalWrite (int pin, int value) ;
這個(gè)函數(shù)式用來設(shè)置pin腳的高低電平的,當(dāng)我們寫HIGH or LOW (1 or 0)的時(shí)候pin腳的mode必須為輸出模式。
3.void digitalWriteByte (int value) ;
這個(gè)函數(shù)可以將8位字節(jié)寫給8個(gè)GPIO pin腳,這是設(shè)置8個(gè)pin腳值的最快的方式。
4.void pwmWrite (int pin, int value) ;
這個(gè)函數(shù)是給PWM寄存器寫入值然后控制GPIO的值的,寫入的值必須是0-1024.
5.int digitalRead (int pin) ;
這個(gè)函數(shù)是讀取GPIO的pin腳的電平高低然后返回讀取的值。
6.void pullUpDnControl (int pin, int pud) ;
這個(gè)函數(shù)是設(shè)置GPIO的pin腳是否接上拉電阻和下拉電阻的。函數(shù)的參數(shù)pud必須設(shè)置,當(dāng)設(shè)置為PUD_OFF時(shí)表示沒有上拉電阻和下拉電阻,當(dāng)設(shè)置為PUD_DOWN 時(shí)為下拉電阻,設(shè)置為PUD_UP是為上拉電阻。
PWM的控制:
1.pwmSetMode (int mode) ;
這個(gè)函數(shù)是設(shè)置PWM的占空比模式一般為50%占空比和占空比可調(diào)模式。樹莓派默認(rèn)是50%占空比模式,我們可以通過PWM_MODE_BAL 和PWM_MODE_MS這兩個(gè)參數(shù)來設(shè)置。
2.pwmSetRange (unsigned int range) ;
這個(gè)函數(shù)是設(shè)置PWM寄存器寫入的范圍,一般默認(rèn)為1024.
3.pwmSetClock (int divisor) ;
這個(gè)函數(shù)的設(shè)置PWM時(shí)鐘的分頻因子。
定時(shí)函數(shù):
1.void delay (unsigned int howLong)
這個(gè)是毫秒級的延時(shí)函數(shù)。
2.void delayMicroseconds (unsigned int howLong)
微秒級的延時(shí)函數(shù)
關(guān)于中斷的函數(shù):
1.int waitForInterrupt (int pin, int timeOut) ;
這一個(gè)等待事件中斷函數(shù),timeout參數(shù)是毫秒級別的參數(shù),當(dāng)為-1時(shí)代表永遠(yuǎn)等待中斷狀態(tài)。如果發(fā)生錯(cuò)誤返回值是-1,0表示超時(shí),1表示成功中斷。調(diào)用這個(gè)函數(shù)之前我們需要對GPIO進(jìn)行初始化。例如我們要設(shè)置GPIO 0為等待下降沿中斷:我們需要在運(yùn)行程序之前先終端運(yùn)行 ? gpio edge 0 falling
2.int wiringPiISR (int pin, int edgeType, ?void (*function)(void)) ;
這個(gè)函數(shù)是利用一個(gè)函數(shù)作為參數(shù)來獲取在特定的GPIO pin腳的中斷。edge_Type參數(shù)可以設(shè)定為 INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP.
當(dāng)中斷發(fā)生的時(shí)候function將被調(diào)用,調(diào)用function之前會(huì)先清除相應(yīng)的標(biāo)志位,這就使得隨后的中斷不會(huì)被影響。
總結(jié)
以上是生活随笔為你收集整理的树莓派wiringPi常用的函数介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下各个头文件及作用总结
- 下一篇: 用一个例子告诉你gdb调试工具如何使用