mini2440 蜂鸣器驱动
2014-07-17 00:01
357 查看
蜂鸣器驱动代码如下:
蜂鸣器驱动代码同led驱动代码完全类似,它是通过GPB0来控制,当GPB0输出高电平时蜂鸣器发声。
头文件buzzer.h如下:
测试代码如下:
#include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/miscdevice.h> #include <linux/ioctl.h> #include <linux/gpio.h> #include <mach/regs-gpio.h> #include "buzzer.h" static int buzzer_open(struct inode *inode, struct file *file) { s3c2410_gpio_cfgpin(S3C2410_GPB(0), S3C2410_GPIO_OUTPUT); s3c2410_gpio_setpin(S3C2410_GPB(0), 0); /* turn off buzzer */ return 0; } static int buzzer_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { switch (cmd) { case BUZZER_ON: s3c2410_gpio_setpin(S3C2410_GPB(0), 1); return 0; case BUZZER_OFF: s3c2410_gpio_setpin(S3C2410_GPB(0), 0); return 0; default: return -EINVAL; } } static struct file_operations buzzer_fops = { .owner = THIS_MODULE, .open = buzzer_open, .ioctl = buzzer_ioctl, }; static struct miscdevice buzzer_misc = { .minor = MISC_DYNAMIC_MINOR, .name = "buzzer", .fops = &buzzer_fops, }; static int buzzer_init(void) { return misc_register(&buzzer_misc); } static void buzzer_exit(void) { misc_deregister(&buzzer_misc); } MODULE_LICENSE("Dual BSD/GPL"); module_init(buzzer_init); module_exit(buzzer_exit);
蜂鸣器驱动代码同led驱动代码完全类似,它是通过GPB0来控制,当GPB0输出高电平时蜂鸣器发声。
头文件buzzer.h如下:
#ifndef __LED_H #define __LED_H #define BUZZER_ON _IO('b', 0) #define BUZZER_OFF _IO('b', 1) #endif /* __LED_H */
测试代码如下:
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <unistd.h> #include <stdio.h> #include "buzzer.h" int main(void) { int fd; fd = open("/dev/buzzer", O_RDWR); if (fd < 0) { printf("No such device!\n"); return -1; } printf("buzzer on\n"); ioctl(fd, BUZZER_ON); sleep(5); printf("buzzer off\n"); ioctl(fd, BUZZER_OFF); close(fd); return 0; }
相关文章推荐
- mini2440 PWM驱动蜂鸣器
- Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制蜂鸣器驱动
- mini2440 pwm蜂鸣器设备驱动开发源代码(宋宝华框架)
- 蜂鸣器驱动 mini2440 kernel2.6.32.2 之蜂鸣器
- Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制蜂鸣器驱动 .
- Linux-4.9.2内核在mini2440上的移植(十四)——蜂鸣器驱动移植
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制蜂鸣器驱动
- .Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制蜂鸣器驱动
- Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制蜂鸣器驱动
- linux-2.6.32在mini2440开发板上移植(18)之移植PWM蜂鸣器驱动
- mini2440 usb host device controller驱动分析(三)-----root hub驱动的分析(一)
- mini2440 led驱动
- 基于 mini2440 电阻式触摸屏(四):mini2440触摸屏驱动分析
- mini2440驱动(一):触摸屏原理
- 一个相当详细的MINI2440按键驱动详解
- 蜂鸣器驱动
- 基于中断的linux按键驱动(mini2440)
- mini2440按键驱动及详细解释(转)
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(十三)---移植UDA1341音频驱动
- Linux-2.6.32.2内核在mini2440上的移植----移植Nand驱动并更改分区信息