linux arm设备驱动程序编写led简单应用

linux arm设备驱动程序编写led简单应用

一、ioctl通信

//此命令用于应用和驱动之间的ioctl通信

// 参数1–表示一个魔幻数–用一个字符表示
//参数2–区分不同命令的整数
//参数3–传递的数据的类型

// 自动生成一个普通的命令号
_IO(type,nr)
// 自动生成一个带可读参数的命令号
_IOR(type,nr,size)
// 自动生成一个带可写参数的命令号
_IOW(type,nr,size)
// 自动生成一个带可读写参数的命令号
_IOWR(type,nr,size)
// 例:

#define LEDON     _IO('L',2)
#define LEDOFF    _IO('L',1)
#define LED_ON   _IOW('L', 0x90, int)
#define LED_OFF  _IOW('L', 0x91, int)
#define LED_ON_ALL   _IO('L', 0x92)
#define LED_OFF_ALL   _IO('L', 0x93)

二、应用代码

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>

#define LEDON     _IO('L',2)
#define LEDOFF    _IO('L',1)


int main(int argc, char **argv)
{
		int fd = open("/dev/test", O_RDWR );
		if(-1 == fd )
		{
			perror("open led");
			return -1 ;
		}

	while(1)
	{
		ioctl(fd,LEDON,0);
		sleep(1);
		
		ioctl(fd,LEDOFF,0);
		sleep(1);

		ioctl(fd,LEDON,1);
		sleep(1);

		ioctl(fd,LEDOFF,1);
		sleep(1);
	}
		close(fd);
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

章鱼哥嵌入式开发

坚持不易,你们的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值