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