字符设备驱动之蜂鸣器

和上一个LED驱动不同的是,讯为4412开发板上只有一个蜂鸣器,因此在给开发板传递参数的时候只需传递一个参数即可

使用ioctl控制蜂鸣器的实例如下:

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

#define BUZZER_C 2

int main(int argc, char *argv[])
{
	char *buzzer = "/dev/buzzer_ctl";
	int fd,ret,buzzer_c;

	buzzer_c = BUZZER_C;

	if(atoi(argv[1]) >= buzzer_c)
			printf("argv[1] is 0 or 1\n");

	fd = open(buzzer,O_RDWR | O_NDELAY);
	if(fd < 0)
			printf("open buzzer failed!\n");
	else
	{
			if(ioctl(fd,atoi(argv[1])) < 0)
					printf("ioctl failed!\n");
			else
					printf("Buzzer is working!\n");
	}
	return 0;
}

使用交叉编译工具将源程序编译之后拷贝到U盘中,在开发板下运行程序,即可听到蜂鸣器工作