字符设备驱动之蜂鸣器
和上一个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盘中,在开发板下运行程序,即可听到蜂鸣器工作