樹莓派-wiringPi-GPIO
wiringPi的GPIO序號如下:
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的速度
高低電平變化響應速度大約是80ns。(raspberry-gpio-python的速度大約是2us,大約是它的25倍)
注意,wiringPi-C也是在上層的程式,輸出的波形同樣是不穩定的。