||
第一章 控制蜂鸣器第一节 查看原理图
如何控制蜂鸣器,首先查阅原理图:
相关引脚:
第二节 程序相关讲解完整代码见目录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)
{
// 设置GPD0CON的bit[0:15],配置GPD0_0引脚为输出功能
GPD0CON |= 1<<0;
}
void buzzer_on(void)
{
// 设置GPD0DAT的bit[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卡插入PC,在Ubuntu终端执行如下命令:
#cd 11.buzzer
#make
#sudo ./sd_fusing.sh /dev/sdb bl2.bin
第四节 实验现象实验现象很简单,就是可以听到开发板欢快地滴滴声响起来了,控制蜂鸣器就是这么简单。