En 0755-86038900
公司新闻

4412开发板Linux开发指南11

发布时间:2015-04-07

Linux平台下UT4412BV03裸机开发指南(十一)

第一章 控制蜂鸣器

第一节 查看原理图

如何控制蜂鸣器,首先查阅原理图:

 

相关引脚:

 

第二节 程序相关讲解

完整代码见目录11.buzzer,蜂鸣器的操作十分简单,原理跟操作LED一样,通过控制GPDO_O这个引脚就可以达到控制蜂鸣器的目的。代码基本同4.system_clock_pll相同,下面讲下有区别的main.c.

1.main.c

#define GPD0CON (*(volatile unsigned long *)0x114000A0)

#define GPD0DAT (*(volatile unsigned long *)0x114000A4)

 

void delay (unsigned int i)

{

volatile unsigned int cnt = i;

while(cnt--);

}

 

void buzzer_init(void)

// 设置GPD0CONbit[0:15],配置GPD0_0引脚为输出功能

GPD0CON |= 1<<0; 

 

void buzzer_on(void) 

// 设置GPD0DATbit[0:15],使GPJ0_0引脚输出高电平,蜂鸣器响

GPD0DAT |= 1<<0; 

 

void buzzer_off(void) 

GPD0DAT &= ~(1<<0); 

}

 

void main (void)

{

buzzer_init();

 

while(1)

{

buzzer_on();    

delay(0x100000);

buzzer_off();    

delay(0x100000);

}

}

函数buzzer_init()配置GPIO引脚,使GPD0_0用于输入功能;

函数buzzer_on()使引脚GPD0_0输出0,蜂鸣器响;

函数buzzer_off()使引脚GPD0_0输出1,蜂鸣器不响;

main.c中,首先会调用buzzer_init()来初始化蜂鸣器,然后通过一个while循环不断的控制蜂鸣器的运行和停止。

第三节 编译程序和烧写运行

sd卡插入PCUbuntu终端执行如下命令:

#cd 11.buzzer

#make

#sudo ./sd_fusing.sh /dev/sdb bl2.bin

第四节 实验现象

实验现象很简单,就是可以听到开发板欢快地滴滴声响起来了,控制蜂鸣器就是这么简单。

  了解更多的信息在http://www.urbetter.net     http://www.urbetter.com.cn或是到友坚论坛进行发贴讨论:http://bbs.urbetter.com