当前位置: 首页 > news >正文

香橙派使用外设驱动库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   //娉ㄦ剰锛岃渹楦e櫒I/O鍙e搴旂殑鐗╃悊寮曡剼鐨?鍙凤紝鍏跺疄瀵瑰簲鐨剋Pi鐨勭2鍙?
int main (void)
{wiringPiSetup () ; //鍒濆鍖杦iringPi搴?pinMode (BEEP, OUTPUT); //閰嶇疆杈撳叆杈撳嚭妯″紡while(1){digitalWrite (BEEP, LOW) ;	//铚傞福鍣ㄥ搷delay (1000) ;		// mSdigitalWrite (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”

http://www.lryc.cn/news/162750.html

相关文章:

  • 微信小程序Day3笔记
  • 大数据技术之Hadoop:提交MapReduce任务到YARN执行(八)
  • [论文笔记]BiMPM
  • JS判断当前是早上,中午,下午还是晚上
  • 使用Docker部署Gitlab的记录
  • Spark【Spark SQL(二)RDD转换DataFrame、Spark SQL读写数据库 】
  • LabVIEW检测润滑油中的水分和铁颗粒
  • 【新版】系统架构设计师 - 软件架构设计<SOA与微服务>
  • React+Typescript+react-router 6 创建路由操作
  • 前端list.push,封装多个对象
  • 指令延迟隐藏
  • 《React vs. Vue vs. Angular:2023年的全面比较》
  • win10自带wifi共享功能
  • React如何实现国际化?
  • netrw模拟nerdtree的go命令连续打开多个文件
  • 算法通关村第十九关——动态规划高频问题(白银)
  • Matlab如何导入Excel数据并进行FFT变换
  • 华为mate60 上线 媒介盒子多家媒体报道
  • Java知识总结(持续更新)
  • 缓存技术:加速应用,提高用户体验
  • MySQL中分区与分表的区别
  • Redis主从复制集群的介绍及搭建
  • MAC M1芯片安装mounty读写移动硬盘中的文件
  • 原生Js Canvas去除视频绿幕背景
  • Vue知识系列(1)每天10个小知识点
  • Elasticsearch(三)聚合基本使用
  • 单片机C语言实例:14、音频输出
  • docker 和 podman的区别
  • 苹果手机远程控制安卓手机,为什么不能发起控制?
  • Gradle 配置国内镜像