树莓派(Linux系统)gpio 基于wiringPi输出pwm信号

本文介绍了树莓派的gpio引脚输出pwm波用以控制led灯亮度的方法,使用的是基于树莓派官方系统中自带的wiringPi库函数实现的。

树莓派中输出pwm波有两种方式:一种是硬件pwm波,一种是软件模拟的pwm波。软件模拟的pwm可以自定义pwm的周期。

 

1.wiringPi函数接口模拟pwm

1.1代码源码

#include <stdio.h>
#include <wiringPi.h>
#include <softPwm.h>
#include <unistd.h>
#include <stdlib.h>

#define BACK_LIGHT (17)

int main(int argc, char *argv[])
{
	if(-1 == wiringPiSetup()){
		printf("wirong pi init fail\n");
		return -1;
	}

	int i=0;
	
	softPwmCreate(BACK_LIGHT, 0, 100);// 生成一个初始值为0,周期为10ms的pwm控制引脚17(周期=0.1*第三个参数)
	if(1 == argc){
		for(i = 0; i < 100; i++)
		{
			
			softPwmWrite(BACK_LIGHT, i);
			//usleep(5000);
			sleep(1);
		}
	}
	else{
		i = atoi(argv[1]);
		printf("i = %d\n", i);
		softPwmWrite(BACK_LIGHT, i);
		sleep(4);
		printf("end\n");
	}
	return 0;
}

1.2代码的编译方式

sudo gcc gpio_pwm.c  -lpthread -lwiringPi

1.3执行

sudo ./a.out

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值