关于蜂鸣器发声
1 驱动上下电(无源蜂鸣器,内部无震动线圈,靠方波驱动发声)
1.1 PWM驱动,上电就响,下电就停;PWM使能频率和占空比;(只有一个PWM输入)
1.2 IO上下电,电容蓄电用来在下电时候缓流,PWM设置频率和占空比持续输出;(PWM和IO两个输入)
第一种方式就是播放停止比较简单;引脚复用,编写pwm启动即可;但是声音开关比较直接;
第二种由于电路设计存在电容缓慢放电,在声音播放时候音效是有一个下电缓慢降低声音的过程,听起来更流畅和丝滑;
2 接口层通过open device 和ioctl调用驱动设备
为了让cmd或者业务层能调用到蜂鸣器的启停接口,需要实现
static const struct file_operations beeper = { .owner = THIS_MODULE, .unlocked_ioctl = beeperioctl, .write = beeperwrite, };
浙公网安备 33010602011771号