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
来源:https://www.cnblogs.com/Record-experience/p/12118454.html