01樹莓派直接輸出PWM波 —— 硬件PWM程序 (推薦使用)
#include <stdio.h> #include <wiringPi.h> #include <softPwm.h> //必不可少
int main( void) { int pwm_gpio5 = 1; //使用GPIO5 int i=0; wiringPiSetup(); //寫的不嚴謹 應該也判斷一下, 看初始化是否成功 pinMode(pwm_gpio5 ,PWM_OUTPUT); printf("pwm_gpio5 is blinking...\n"); for(;;) { for(i=0;i<1024;i++) { pwmWrite(1,i); delay(10); printf("Testing is %d......\n",i); } for(i=1023;i>0;i--) { pwmWrite(1,i); delay(10); printf("Testing is %d......\n",i); } } }
02樹莓派直接輸出PWM波 —— 軟件PWM程序
#include <stdio.h> #include <wiringPi.h> #include <softPwm.h>
int main( void) { int pwm_gpio5 = 1; int i=0; wiringPiSetup(); pinMode(pwm_gpio5 ,PWM_OUTPUT); printf("pwm_gpio5 is blinking...\n"); softPwmCreate(pwm_gpio5,100); //創建軟PWM 默認的值100
for(;;) { for(i=0;i<100;i++) { softpwmWrite(1,i); delay(10); printf("Testing is %d......\n",i); } for(i=99;i>0;i--) { softpwmWrite(1,i); delay(10); printf("Testing is %d......\n",i); } } }
03 wiringPI 中包含了一個軟件驅動的PWM處理庫,可以在任意的樹莓派GPIO口輸出PWM信號。其中PWM頻率越高,所需要的CPU資源越多,特別注意需要尋求平衡
04 編譯生成執行文件時,千萬別忘記加 -lwiringPi -lpthread