香橙派使用外设驱动库wiringOP来驱动蜂鸣器

硬件接线

回顾香橙派的物理引脚对应:

 所以将VCC接到1,GND接到6,I/O口接到7:

代码编写

香橙派的wiringOP库提供了很多的例程,可以将blink.c拷贝进自己的代码文件夹来修改:

小插曲---将手动对齐的Tab和自动对齐 从8个空格设置为4个空格 & 自动显示行号 的方法

sudo vim /etc/vim/vimrc
set tabstop=4 设置tab键缩进4个空格
set shiftwidth=4 设置批量对齐时候的tab键空格数为4
set nu 这样用vi打开文件的时候会自动显示行号

然后vi blink.c进行修改:

#include <stdio.h>
#include <wiringPi.h>

#define BEEP 2   //注意,蜂鸣器I/O口对应的物理引脚的7号,其实对应的wPi的第2号

int main (void)
{

    wiringPiSetup () ; //初始化wiringPi库

    pinMode (BEEP, OUTPUT); //配置输入输出模式

    while(1){
        digitalWrite (BEEP, LOW) ;  //蜂鸣器响
        delay (1000) ;      // 1mS

        digitalWrite (BEEP, HIGH) ; //蜂鸣器不响
        delay (1000) ;
    }

    return 0;
}

然后编译,但是此时不能单纯使用gcc,还需要链接“-lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt”6个库才能成功编译:

 但是,每次编译都输入这么大一长串的库很麻烦,因此可以写一个脚本“build.sh”:

shell脚本插曲---脚本应该适用于各种程序名字:

shell脚本处理参数,可以通过$?来处理,这里的$1是要编译的文件

这里的“$?”就和之前的argv[?]是类似的概念

 gcc $1 -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt

但是发现无法编译: 

 

原因是:创建出来的脚本是没有权限的,需要使用“chmod +x build.sh”来赋予他可以被执行的权限:

此时再按照格式编译,就成功生成了a.out文件! 

注意,a.out要使用sudo来运行:

此时就可以听到蜂鸣器以固定间隔开始响了! 

此时可以再次输入“gpio readall”来验证:

可见,PC9对应的Mode由“OFF”变成了“OUT”

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值