# 蜂鸣器实验 ## 硬件分析 ![](media/image-20210814204732213.png) ## 代码分析 ### bsp_beep.c ```c #include "bsp_beep.h" /* 所有引脚均使用同样的PAD配置 * 配置说明 : * 转换速率: 转换速率慢 * 驱动强度: R0/6 * 带宽配置 : medium(100MHz) * 开漏配置: 关闭 * 拉/保持器配置: 关闭 * 拉/保持器选择: 保持器(上面已关闭,配置无效) * 上拉/下拉选择: 100K欧姆下拉(上面已关闭,配置无效) * 滞回器配置: 关闭 */ #define BEEP_PAD_CONFIG_DATA (SRE_0_SLOW_SLEW_RATE| \ DSE_6_R0_6| \ SPEED_2_MEDIUM_100MHz| \ ODE_0_OPEN_DRAIN_DISABLED| \ PKE_0_PULL_KEEPER_DISABLED| \ PUE_0_KEEPER_SELECTED| \ PUS_0_100K_OHM_PULL_DOWN| \ HYS_0_HYSTERESIS_DISABLED) void beep_init(void) { CCM_CCGR1_CG13(0x3);//开启GPIO1的时钟 /*设置 beep 引脚的复用功能以及PAD属性*/ IOMUXC_SetPinMux(BEEP_IOMUXC,0); IOMUXC_SetPinConfig(BEEP_IOMUXC, BEEP_PAD_CONFIG_DATA); BEEP_GPIO->GDIR |= (1<DR |= (1<DR &= ~(1<DR |= (1<DR ^= (1<