ARM裸机开发:蜂鸣器实验
一、硬件平台:
二、原理图分析
我们首先看到开发板上的开发板 BEEP 驱动电路,找到控制引脚原理图
驱动电路
控制引脚
相应的引脚是 GPIO5_IO01 ,该 IO 通过简单的电平控制三极管的开关,实现有源蜂鸣器的开关,有利于保护引脚,防止蜂鸣器工作时电路损坏 IO 口,控制模式,高电平蜂鸣器打开,低电平蜂鸣器关闭
三、配置代码
代码基于上一节BSP工程代码进行修改,添加 bsp_beep 文件夹及其模块文件
bsp_beep.c文件
#include "bsp_beep.h" void BSP_BEEP_INIT(void) {
IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0); IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0x10b0); GPIO5->GDIR |= (1<<1); GPIO5->DR |= (1<<1); }
bsp_beep.h文件
#ifndef __BSP_BEEP_H #define __BSP_BEEP_H #include "fsl_iomuxc.h" #include "MCIMX6Y2.h" #define BEEP_ON() GPIO5->DR &=~(1<<1) #define BEEP_OFF() GPIO5->DR |= (1<<1) void BSP_BEEP_INIT(void); #endif
主函数进行调用
#include "bsp_led.h"
#include "bsp_clk.h"
#include "bsp_delay.h"
#include "bsp_beep.h"
int main(void)
{
CLK_INIT();
LED_INIT();
while (1)
{
/* code */
LED_ON();
BEEP_ON();
delay(1000);
LED_OFF();
BEEP_OFF();
delay(1000);
}
return 0;
}
修改一下 Makefile 文件进行构建,主要就是增加加构建路径
INCDIRS := imx6ul \
bsp/bsp_clk \
bsp/bsp_led \
bsp/bsp_delay\
bsp/bsp_beep
SRCDIRS := project \
bsp/bsp_clk \
bsp/bsp_led \
bsp/bsp_delay\
bsp/bsp_beep
以及改变目标文件名称
TARGET ?= beep
修改完成,进行构建
四、实验现象
蜂鸣器周期性的响起