Exynos4412裸机开发系列教程--蜂鸣器

  蜂鸣器为一种自激震荡的发声设备,用于各种操作提示,一般都是单频发声,当然也有不带自激震荡的蜂鸣器,需要由处理器产生各种频率的方波,以驱动蜂鸣器发声。

普通IO口是无法直接驱动任何蜂鸣器的,一般都需要通过三极管来增强驱动能力,下图即是蜂鸣器的最简单应用电路,通过设置pwm1管脚电平能打开或关闭蜂鸣器。

  

同样,更Led流水灯类似,我们需要编写一个函数能控制蜂鸣器,方便以后的调用,实现如下:

enum beep_status {
	BEEP_STATUS_OFF		= 0,
	BEEP_STATUS_ON		= 1,
};

void beep_set_status(enum beep_status status)
{
	if(status == BEEP_STATUS_ON)
		writel(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_DAT, (readl(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_DAT) & ~(0x1<<1)) | (0x1<<1));
	else if(status == BEEP_STATUS_OFF)
		writel(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_DAT, (readl(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_DAT) & ~(0x1<<1)) | (0x0<<1));
}

当然在操作蜂鸣器之前,我们需要初始化相关IO,输出上拉模式

/*
 * Beep Pin -> EXYNOS4_GPD0(1)
 */
void beep_initial(void)
{
	writel(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_CON, (readl(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_CON) & ~(0xf<<4)) | (0x1<<4));
	writel(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_PUD, (readl(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_PUD) & ~(0x3<<2)) | (0x2<<2));
	writel(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_DAT, (readl(EXYNOS4412_GPD0_BASE + EXYNOS4412_GPIO_DAT) & ~(0x1<<1)) | (0x0<<1));
}

接下来,我们来看看主程序:

int tester_beep(int argc, char * argv[])
{
	while(1)
	{
		beep_set_status(BEEP_STATUS_ON);
		mdelay(500);

		beep_set_status(BEEP_STATUS_OFF);
		mdelay(500);
	}

	return 0;
}

很简单,死循环,每隔500毫秒改变蜂鸣器的状态,并可听到滴滴声。

是不是很简单呢,发现跟单片机编程没什么两样啊。是这样的,只要我们将各种外设模块包装好各种库,开发裸机,跟开发各种应用软件,没有任何差异,专心做好业务逻辑层面就可以了。

贴上完整源码参考吧,有兴趣的自行下载编译,测试。有问题的请留言。

Exynos4412裸机系列教程源码之蜂鸣器


### 回答1: exynos4412-pwm 蜂鸣器开发是指使用Exynos4412芯片的PWM模块来控制蜂鸣器开发。PWM模块可以产生一定频率和占空比的脉冲信号,通过控制脉冲信号的频率和占空比,可以控制蜂鸣器发出不同的声音。在开发过程中,需要了解Exynos4412芯片的PWM模块的使用方法,以及蜂鸣器的工作原理和控制方式。同时,还需要编写相应的驱动程序和应用程序,实现蜂鸣器的控制。 ### 回答2: exynos4412-pwm蜂鸣器开发是指在使用exynos4412芯片的板子上使用pwm技术来控制蜂鸣器发出声音。该方案的实现需要一些必要的硬件和软件条件。 首先,需要准备一款带有蜂鸣器的arduino或类似的板子,同时还需要exynos4412芯片的板子,以及一些杜邦线和电阻等电子元器件。其次,需要在板子上安装linux操作系统,并配置好相关的驱动程序和开发环境。在这个过程中需要熟悉linux的内核驱动开发和用户空间开发,同时还需要掌握pwm技术和蜂鸣器的原理。 在完成硬件和软件准备后,可以开始进行exynos4412-pwm蜂鸣器开发。首先创建一个设备驱动程序来控制蜂鸣器,并在其中实现pwm技术来生成不同频率的蜂鸣器声音。然后可以在应用程序中调用这个驱动程序来实现具体的功能,比如根据输入的命令生成不同的蜂鸣器声音。 总的来说,exynos4412-pwm蜂鸣器开发需要掌握一定的硬件和软件技能,包括linux开发驱动程序开发、pwm技术和蜂鸣器原理等。在掌握了这些技能后,可以很方便地在exynos4412芯片的板子上实现蜂鸣器声音的控制和应用。 ### 回答3: exynos4412-pwm是一种嵌入式系统的PWM控制器,它能够对某些外设进行精准控制。而蜂鸣器则是常用的一种简单外设,能够通过PWM信号控制而发出声音。因此,我们可以结合exynos4412-pwm的特性,来进行蜂鸣器开发。 首先,我们需要确定使用的蜂鸣器的型号和规格,以及它的工作电压和最大工作频率。根据这些参数,我们就可以计算出需要给PWM控制器发送的频率和占空比等参数。在编码实现上,我们可以通过Linux操作系统中的sysfs文件系统对PWM控制器进行设置和控制。具体而言,我们需要修改/sys/devices/platform/pwm-ctrl/目录下的相关文件来设置频率和占空比等属性,以及控制PWM输出信号的开关状态。 此外,在硬件设计上,我们还需要将蜂鸣器接入到exynos4412-pwm控制器的PWM输出信号。需要注意的是,蜂鸣器的极性也需要正确接入,以确保PWM正负半周的输出方向正确。 综上所述,exynos4412-pwm蜂鸣器开发需要我们在硬件和软件两个方面进行开发和实现。在硬件方面,需要正确接入蜂鸣器和PWM控制器,并确保信号方向和极性正确;在软件方面,需要通过Linux操作系统的sysfs文件系统对PWM控制器进行设置和控制。通过这样的方式,我们就可以很方便地实现蜂鸣器的声音输出,以满足一些嵌入式系统的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值