蜂鸣器控制很简单只需要控制引脚输出即可。通过原理图查看找到对应的GPIO
下面是代码:
#Start.S
.global _start
_start:
# 关闭看门狗
ldr r0, =0xE2700000
mov r1, #0
str r1, [r0]
# 设置栈,以便调用c函数
ldr sp, =0x31000000
# 调用main
bl main
halt:
b halt
//main.c
#define GPJ2CON (*(volatile unsigned long *) 0xE0200280)
#define GPJ2DAT (*(volatile unsigned long *) 0xE0200284)
// 延时函数
void delay(unsigned long count)
{
volatile unsigned long i = count;
while (i--)
;
}
void main()
{
buzzer_init();
while(1)
{
buzzer_on();
delay(0x50000);
buzzer_off();
delay(0x50000);
}
}
// 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;
}
voi

本文介绍了ARM裸机编程中控制蜂鸣器的方法。关键在于找到蜂鸣器对应的GPIO,通过原理图定位,然后编写代码,将程序烧录到0x40000000地址并执行。
最低0.47元/天 解锁文章
806

被折叠的 条评论
为什么被折叠?



