第八章 让开发板发出声音:蜂鸣器驱动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八章 让开发板发出声音:蜂鸣器驱动相关的知识,希望对你有一定的参考价值。
蜂鸣器是开发板上的一个硬件设备,可通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。这一章我们对开发板上的蜂鸣器进行介绍。
蜂鸣器(PWM)驱动--蜂鸣器是开发板上自带的一个硬件。通过相应的寄存器控制蜂鸣器的打开和关闭,并且在实现蜂鸣器的驱动时,将打开和关闭蜂鸣器的函数放到了另外的C源代码中,通过多个*.o文件产生*.ko驱动文件。
蜂鸣器驱动的原理:蜂鸣器也称为PWM-脉冲宽度调制,基本原理是通过脉冲来控制蜂鸣器的打开和停止。PWM使用端口F的GPFCON寄存器进行控制。该寄存器在Linux内核中对应的宏是S3C64XX_GPFCON,表示GPFCON寄存器的虚拟地址,只用了高两位来控制PWM。当高两位为10时,打开PWM,为00时停止PWM,只需通过iowrite32()为GPFCON寄存器设置不同的值即可。
实现蜂鸣器驱动的方式为通过I/O命令可以打开和停止PWM。PWM驱动有3个文件,驱动主程序、头文件和包含打开和停止PWM的两个函数的文件。还有编译驱动的Makefile文件。
测试蜂鸣器驱动的步骤为,先进入/root/drivers/ioctl目录,执行build.sh脚本文件编译和上传ioctl文件。在测试PWM驱动前,先要编译和安装PWM驱动,然后进入开发板终端的/data/local目录,输入命令“# ./ioctl /dev/pwm_dev 1 0”打开PWM。输入命令“# ./ioctl /dev/pwm_dev 0 0”停止PWM。ioctl命令必须要求输入I/O命令的参数,但PWM驱动未使用I/O命令参数,所以ioctl最后一个命令行参数可任意输入。
以上是关于第八章 让开发板发出声音:蜂鸣器驱动的主要内容,如果未能解决你的问题,请参考以下文章