蜂鸣器的驱动实验

驱动蜂鸣器与鸡翅led是一样的,对于i.mx6ull来说只需要对指定的引脚输出高或者低电平即可。
找到蜂鸣器使用的引脚打开i.mx6ull开发板原理图,找到蜂鸣器接的引脚
可以看出,蜂鸣器正极接的是三极管,负极接地,想让蜂鸣器工作就需要让三极管导通。这是一个pnp型三极管,基极接的是beep,想让三极管导通蜂鸣器工作需要给beep一个低电平。
再看一下beep具体接的是i.mx6ull的哪一个管脚
从图中可以看出,beep具体接的是snvs tamper1
初始化beep对应引用
从i.mx6ull的参考手册里面的32.5.4小节中可以找到关于snvs tamper1寄存器,现在需要将他复用成通用gpio,通过查看手机复用之后是gpio5_io01,所以在初始化蜂鸣器gpio时也就是将snvs tamper1寄存器复用成gpio5_io01:
iomuxc_setpinmux(iomuxc_snvs_snvs_tamper1_gpio5_io01, 0);同时设置gpio5_io01的电气属性为:
iomuxc_setpinconfig(iomuxc_snvs_snvs_tamper1_gpio5_io01, 0x10b0);设置gpio5_io01的输入输出:
/// 设置gpio5的第1位即io01为输出,默认电平为低电平pio_init(gpio5, 1, (gpio_config){gpio_direction_output, 0});控制蜂鸣器控制gpio5_io01的dr寄存器,通过写入低(0)电平来打开蜂鸣器,写入高电平(1)来关闭蜂鸣器。
void beep_on(){ gpio_setvalue(gpio5, 1, 0);}void beep_off(){ gpio_setvalue(gpio5, 1, 1);}验证在main文件中对应的开led灯的位置打开蜂鸣器,关灯的地方关闭蜂鸣器。
#include #include delay.h#include clk.h#include led.h#include beep.hint main(void){ clk_init(); led_init(); beep_init(); while (1) { delay(500); led_on(); beep_on(); delay(500); led_off(); beep_off(); } return 0;}最后,通过makefie编译成bee.bin并烧写到开发板即可听到蜂鸣器工作了。

永磁体是怎么产生的_永磁体的应用
Stability AI推出商业版会员计划 对AI模型的商业使用收费
2024程序员的未来方向如何走?还看今朝
PLC AB相脉冲高速计数设计实例详解
导致电动不锈钢法兰球阀过载的因素是什么
蜂鸣器的驱动实验
山寨币市场正在进入第六个山寨季节
欧拉(openEuler)是什么?
美国科学家发明石墨烯“复制机器” 大幅度降低晶圆工艺成本
Microchip最新通过认证的700和1200V碳化硅肖特基势垒二极管功率器件
双线双IP高性价比服务器的概述
盘点那些新颖且有趣的电子传感器
基于软核LEON2在FPGA开发板实现数字机顶盒系统设计
目前手机市场已经进入华米OV苹五强并立时代
电压频率转换器电路图分享
从松散无序到精密有序,离散制造业“流程化改造”实现精益生产
LLC峰值电流控制PWM发波的设计实现
音质最好的蓝牙耳机是哪款?2022音质超好的蓝牙耳机推荐
模式A在开关闭合及断开时的等效电路和波形图
未来AI游戏芯片的技术发展趋势将会是怎样的?