《OK6410-蜂鸣器驱动程序设计》之阻塞型字符设备
蜂鸣器是通过I/O 口GPF15来间接控制的,为了增加驱动能力,增加了三级管驱动电路。当三极管的基极(B)为高电平即GPF15 为高电平时,蜂鸣器会鸣叫,反之则不响。通过设置两者之间的时间(即改变频率)可以使蜂鸣器发出不同的声音,甚至播放乐曲。
OK6410蜂鸣器原理图:

通过I/O 口GPF15来控制:

查看s3c6410芯片手册,端口M对应的三个寄存器地址:
实验相应寄存器

端口配置寄存器
![]()
端口数据寄存器

代码:
been_wait.c
ifneq ($(KERNELRELEASE),)obj-m := been_wait.oelse KDIR := /home/liye/forlinux/linux-2.6.36all:make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-install:cp been_wait.ko write read /home/liye/forlinux/rootfs/courseclean:rm -f *.o *.ko *.mod.c *.mod.o *.order *.symversendif