zoukankan      html  css  js  c++  java
  • 第八章、让开发板发出声音:蜂鸣器驱动

    通过对这一章节的学习我学到了如下知识:

     一、蜂鸣器的知识:蜂鸣器也称为PWM(脉冲宽度调制),其基本原理是通过脉冲来控制蜂鸣器的打开和关闭,定时器的输出引脚与蜂鸣器的三极管相连,此电路的三极管是PNP性,当引脚是高电平时,此三极管处于饱和状态,电路导通,电流流过蜂鸣器,此时蜂鸣器发声,反之,当引脚是高电平时,此三极管处于截止状态,电路关断,蜂鸣器停止发声。       蜂鸣器驱动由三个文件组成:pwm_c.pwm_fun.h、pwm_fun.c。其中pwm.c是驱动主程序。pwm_fun.h引用了相应的头文件,以及定义了一些宏。pwm_fun.c文件则包含了打开和停止pwm的两个函数。      

          蜂鸣器是s3c6410开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。  

          对实验的学习:     将 3 个.c 文件分别编译成 3 个.0 文件,并将这3 个.0 文件链接生成.ko 文件。 1.编写main.c文件,以及fun.c、product.c和product.h文件。 2.编写makefile文件   obj-m := main.o  multi_file_driver-y := fun.o  product.o 

    二、代码重用: 1、静态重用 :将要重用的代码放在其他的文件中,如果要使用某些功能,用include相应的头文件即可 2、动态重用:一个Linux驱动可以使用另外一个Linux驱动中的资源 三、卸载由于异常情况而导致的Linux驱动模块无法卸载有如下两种情况:

    1、初始化函数崩溃:将当前的Linux驱动模块的引用计数器清零即可

    2、卸载函数被阻塞:将原来的卸载函数替换成一个空的卸载函数即可

  • 相关阅读:
    简明Python3教程 12.问题解决
    简明Python3教程 11.数据结构
    【SPOJ 694】Distinct Substrings
    【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
    【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
    【CF Manthan, Codefest 17 A】Tom Riddle's Diary
    【SPOJ 220】 PHRASES
    【POJ 3261】Milk Patterns
    【POJ 3294】Life Forms
    【POJ 1226】Substrings
  • 原文地址:https://www.cnblogs.com/liang123456/p/5640127.html
Copyright © 2011-2022 走看看