【Linux裸机开发】- 蜂鸣器按键输入

蜂鸣器

此三级管是PNP型,SNVS_TAMPER1 输出低电平的时候 Q1 导通,即低电平蜂鸣器响,高电平不响【Linux裸机开发】- 蜂鸣器按键输入_第1张图片
在这里插入图片描述

代码修改

新建 beep目录,将led_bsp项目文件全部拷贝到里面
【Linux裸机开发】- 蜂鸣器按键输入_第2张图片
再拷贝 .vscode
在这里插入图片描述
添加头文件路径及修改Makefile
【Linux裸机开发】- 蜂鸣器按键输入_第3张图片
【Linux裸机开发】- 蜂鸣器按键输入_第4张图片
添加编写蜂鸣器驱动
【Linux裸机开发】- 蜂鸣器按键输入_第5张图片
bsp_beep.h

#ifndef __BSP_BEEP_H
#define __BSP_BEEP_H

#include"MCIMX6Y2.h"
#include"fsl_iomuxc.h"
#include"fsl_common.h"

void beep_init(void);
void beep_switch(int status);

#endif

bsp_beep.c

#include "bsp_beep.h"
#include "cc.h"

void beep_init(void)
{
    /* 1、初始化IO复用 */
	IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01 ,0);		/* 复用为GPIO1_IO0 */

	/* 2、、配置GPIO5_IO01的IO属性	
	 *bit 16:0 HYS关闭
	 *bit [15:14]: 00 默认下拉
     *bit [13]: 0 kepper功能
     *bit [12]: 1 pull/keeper使能
     *bit [11]: 0 关闭开路输出
     *bit [7:6]: 10 速度100Mhz
     *bit [5:3]: 110 R0/6驱动能力
     *bit [0]: 0 低转换率
     */
	IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01 ,0X10B0);

	/* 3、初始化GPIO,设置GPIO5_IO01设置为输出  */
	GPIO5->GDIR |= (1 << 1);	
	
	/* 4、设置GPIO5_IO01输出低电平,打开LED0 */
	GPIO5->DR |= (1 << 1);	
}
void beep_switch(int status)
{
	if(status == ON)
		GPIO5 -> DR &= ~(1 << 1);	
	else if(status == OFF)
		GPIO5 -> DR |=  (1 << 1);	
}



你可能感兴趣的:(Linux裸机开发)