1. 程式人生 > >樹莓派-wiringPi-GPIO

樹莓派-wiringPi-GPIO

wiringPi的GPIO序號如下:
1.jpg

void pinMode (int pin, int mode) ;
設定GPIO模式。
pin是引腳序號,以何種方式編號在前面決定。
mode可以設定為:

INPUT
OUTPUT
PWM_OUTPUT
GPIO_CLOCK
SOFT_PWM_OUTPUT
SOFT_TONE_OUTPUT
PWM_TONE_OUTPUT

只有具有相應功能的引腳才能設定為該功能。

void pullUpDnControl (int pin, int pud) ;
設定上下拉。
pin是引腳序號,以何種方式編號在前面決定。
pud是上下拉配置,可設定為:

PUD_OFF 無上下拉
PUD_UP 上拉,3.3v,50kΩ
PUD_DOWN 下拉,50kΩ

void digitalWrite (int pin, int value) ;
設定指定引腳的輸出。
pin是引腳序號,以何種方式編號在前面決定。
value是輸出值,可以設定為:

HIGH 或 非0 高電平(3.3v)
LOW 或 0 低電平

void digitalWriteByte (int value) ;

int digitalRead (int pin) ;
讀取指定引腳。
pin是引腳序號,以何種方式編號在前面決定。
返回的是該引腳的電平,返回HIGH或LOW。

void pwmWrite (int pin, int value) ;
設定pwn輸出佔空比。
pin是引腳序號,以何種方式編號在前面決定。(最新的樹莓派裡面好像把pwm功能去掉了)
value是佔空比,範圍是0~1023。
???在哪設定pwm的週期呢?

analogRead (int pin) ;
讀入模擬量(AD)。
analogWrite (int pin, int value) ;
輸出模擬量(DA)。
以上兩個功能需要外加晶片,這裡略去。

wiringPi-C控制GPIO的速度
2.png
高低電平變化響應速度大約是80ns。(raspberry-gpio-python的速度大約是2us,大約是它的25倍)
注意,wiringPi-C也是在上層的程式,輸出的波形同樣是不穩定的。