wiringpi庫真是包含了各個方面,甚至提供了程序操作介面。
使用wiringpi的介面可以很方便地建立新程序。
int pihipri (int priority) ;
設定程序優先順序。範圍是0~99,數字越大優先順序越高,預設是0。
返回0代表成功,返回-1代表失敗。
注:必須已root身份執行,否則無效。
int wiringpiisr (int pin, int edgetype, void (*function)(void)) ;
設定某個pin作為中斷腳,當觸發中斷時呼叫指定函式。
估計實現原理是後台用了乙個定時器不斷掃瞄這個引腳。
pin是引腳序號,編號方式在setup時決定。
edgetype是中斷觸發方式:
int_edge_falling
下降沿int_edge_rising
上公升沿int_edge_both
上公升沿和下降沿
int_edge_setup
未設定
中斷處理函式傳入函式指標即可。
int pithreadcreate (pi_thread func) ;
建立乙個執行緒執行func函式。要求func函式用pi_thread宣告。
返回0代表建立成功,非0代表失敗。
例:
1234567
8910
pi_thread
(func
)//注意這種宣告方式,函式名用括號括起來,不帶引數
void
main
()
pilock (int keynum) ;
piunlock (int keynum) ;
獲取鎖和釋放鎖。wiringpi-c提供了4個鎖,keynum範圍是0~3。
預設所有所都是釋放狀態,當呼叫pilock()想要獲取鎖時,如果這個鎖沒有被釋放則會一直等待,直到這個鎖被釋放才會拿到這個鎖並繼續執行下去。
這裡的鎖可以理解為某個資源,使用該資源時呼叫pilock()標誌該資源正在被使用,使用結束後呼叫piunlock()表示釋放該資源。其他地方想要使用該資源也必須先獲取這個鎖,如果沒有獲取到則等待使用者釋放資源後再使用。
樹莓派wiringPi輸出PMW
只有wringpi第1腳 第23腳 第24腳和第26腳才支援輸出硬體pwm波 pinmode 1,pwm output 函式在系統模式 sys mode 下無效。pwmwrite 1,22 輸出占空比為22 1024的pwm波 新增標頭檔案 include 主函式中 int pwmpin 7 wir...
樹莓派 wiringPi 時間函式
wiringpi不僅提供硬體操作的介面,同時也提供了一些時間管理函式。void delay unsigned int howlong 延時ms,最大傳入32位無符號型整數,大約49天。實際上是睡眠,不占用cpu。由於linux是多工的,所以實際延時時間可能會更長。void delaymicrosec...
樹莓派golang呼叫wiringPi
用go搭建tcp伺服器,實在很方便,呼叫c寫的底層應用也很方便,有些特別注意的地方,紅色標記,以便以後查閱 package main cgo ldflags llib lwiringpi 編譯時鏈結wiringpi庫 include include include wiringpi.h void c...