02树莓派4B—C语言编程——PWM

拈花ヽ惹草 提交于 2020-01-08 08:32:38

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 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!