作者:mobiledu2502913921 | 来源:互联网 | 2023-09-04 21:29
S5PV210带有一个蜂鸣器,十分吵闹,本章将学习如何控制蜂鸣器。相关引脚:蜂鸣器的操作十分简单,原理跟操作LED一样,通过控制GPDO_O这个引脚就可以达到控制蜂鸣器的目的。1.s
S5PV210带有一个蜂鸣器,十分吵闹,本章将学习如何控制蜂鸣器。
相关引脚:
蜂鸣器的操作十分简单,原理跟操作LED一样,通过控制GPDO_O这个引脚就可以达到控制蜂鸣器的目的。
1. start.S
start.S做了下面3件事:
第一步 关看门狗;
第二步 设置栈,以便调用C函数;
第三步 调用main函数;
2. buzzer.c
完整代码如下:
/*buzzer.c*/
#define GPD0CON (*(volatile unsigned long *)0xE02000A0)#define GPD0DAT (*(volatile unsigned long *)0xE02000A4)
// 初始化buzzer
void buzzer_init(void)
{
GPD0CON |= 1<<0;
}
void buzzer_on(void)
{
GPD0DAT |= 1<<0;
}
void buzzer_off(void)
{
GPD0DAT &= ~(1<<0);
}
函数buzzer_init()配置GPIO引脚,使GPD0_0用于输入功能;
函数buzzer_on()使引脚GPD0_0输出0,蜂鸣器响;
函数buzzer_off()使引脚GPD0_0输出1,蜂鸣器不响;
3. main.c
在main.c中,首先会调用buzzer_init()来初始化蜂鸣器,然后通过一个while循环不断的控制蜂鸣器的运行和停止。
4.Makefile
/*Makefile*/
buzzer.bin: start.o main.o buzzer.o
arm-linux-ld -Ttext 0x0 -o buzzer.elf $^
arm-linux-objcopy -O binary buzzer.elf buzzer.bin
arm-linux-objdump -D buzzer.elf > buzzer_elf.dis
%.o : %.S
arm-linux-gcc -o $@ $<-c
%.o : %.c
arm-linux-gcc -o $@ $<-c
clean:
rm *.o *.elf *.bin *.dis *.exe -f
代码下载链接:http://download.csdn.net/detail/klcf0220/5508555
喜欢开源,乐意分享的大神们,欢迎加入QQ群:176507146,你值的拥有哦!