04 蜂鸣器输出控制
说明¶
这个章节将讲述如何使用GPIO控制蜂鸣器的响和关闭。我们可以用蜂鸣器模拟一些报警的场景,比如什么值超过了一定量。
我设计的智能家居扩展板一共有1个普通的用GPIO口控制的蜂鸣器,BCM编号是16。
然后这个蜂鸣器电路就是一个三极管控制开关的电路,所以只需要控制引脚的高低电平就可以了。
代码¶
下面就是写了一个使用wiringPi的控制蜂鸣器端口高低电平变化的代码。使用BCM编码,16,c文件名我命名为main.c
#include <wiringPi.h>
#define BEEP 16
int main(void)
{
if(wiringPiSetupGpio() < 0)
return 1;
pinMode(BEEP,OUTPUT); //设置引脚为输出模式
while (1)
{
digitalWrite(BEEP,1);
delay(1000);//延时1000ms
digitalWrite(BEEP,0);
delay(1000);
}
}
然后编译这段代码
-Wall 表示编译时显示所有警告,-lwiringPi 表示编译时动态加载 wiringPi 库
编译完成后调用生成的main文件
然后可以就可以查看到板子上LED灯的变化。
想要停止这个程序,Ctrl+c即可。
分文件编写¶
想要将beep的驱动部分隔离出来,建立bsp_beep.c和bsp_beep.h文件。具体的写法参考开源代码。
分文件后,多文件的编译如下
把bsp_beep.c文件也加入进去。