树莓派GPIO口驱动编写
一、wiringpi写法
#include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { if(argc<2) return -1; if(argc==2) { wiringPiSetup(); pinMode(0, OUTPUT); if(atoi(argv[1]) == 1) digitalWrite(0, HIGH); else if(atoi(argv[1]) == 0) digitalWrite(0, LOW); return 0; } return 0; }
可以使用shell指令查看GPIO对应情况:
$gpio readall
官方网站:http://wiringpi.com/
二、bcm2835
#include <bcm2835.h> #include <stdio.h> /*GPIO pin 17*/ #define PIN RPI_GPIO_P1_11 int main(int argc,char **argv) { if(!bcm2835_init()) return 1; bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP); while(1) { bcm2835_gpio_write(PIN,HIGH); bcm2835_delay(500); bcm2835_gpio_write(PIN,LOW); bcm2835_delay(500); } bcm2835_close(); return 0; }
GPIO口配置:http://elinux.org/RPi_Low-level_peripherals
bcm2835官网:http://www.airspayce.com/mikem/bcm2835/index.html
无欲速,无见小利。欲速,则不达;见小利,则大事不成。