当前位置: 首页 > 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”

相关文章:

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

硬件接线 回顾香橙派的物理引脚对应&#xff1a; 所以将VCC接到1&#xff0c;GND接到6&#xff0c;I/O口接到7&#xff1a; 代码编写 香橙派的wiringOP库提供了很多的例程&#xff0c;可以将blink.c拷贝进自己的代码文件夹来修改&#xff1a; 小插曲---将手动对齐的Tab和自动对…...

微信小程序Day3笔记

1、页面导航 1. 什么是页面导航 页面导航指的是页面之间的相互跳转。例如&#xff1a;浏览器中实现页面导航的方式有如下两种&#xff1a; <a>链接location.href 2. 小程序中实现页面导航的两种方式&#xff1a; 声明式导航&#xff1a; 在页面上声明一个<navigat…...

大数据技术之Hadoop:提交MapReduce任务到YARN执行(八)

目录 一、前言 二、示例程序 2.1 提交wordcount示例程序 2.2 提交求圆周率示例程序 三、写在最后 一、前言 我们前面提到了MapReduce&#xff0c;也说了现在几乎没有人再写MapReduce代码了&#xff0c;因为它已经过时了。然而不写代码不意味着它没用&#xff0c;当下很火…...

[论文笔记]BiMPM

引言 这又是一篇文本匹配的论文Bilateral Multi-Perspective Matching for Natural Language Sentences阅读笔记。 论文题目为自然语言文本中双向多视角匹配。 提出了BiMPM(bilateral multi-perspective matching)模型: 基于匹配-聚合(比较-聚合)框架; 采用双向匹配提取交…...

JS判断当前是早上,中午,下午还是晚上

<!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><div></div><script>function getTimeState() {// 获取当前时间let timeNow new Date();// 获取当前小时let…...

使用Docker部署Gitlab的记录

docker版本 使用docker -v查看 Docker version 1.13.1, build 7d71120/1.13.1运行容器镜像 映射本机的9980端口为Docker内部的80端口 映射本机的9922端口为Docker内部的22端口 使用root用户启动 映射本机目录/mnt/sda/gitlab/log为Docker内部的/var/log/gitlab 映射本机目录…...

Spark【Spark SQL(二)RDD转换DataFrame、Spark SQL读写数据库 】

从 RDD 转换得到 DataFrame Saprk 提供了两种方法来实现从 RDD 转换得到 DataFrame&#xff1a; 利用反射机制推断 RDD 模式使用编程方式定义 RDD 模式 下面使用到的数据 people.txt &#xff1a; Tom, 21 Mike, 25 Andy, 18 1、利用反射机制推断 RDD 模式 在利用反射机制…...

LabVIEW检测润滑油中的水分和铁颗粒

LabVIEW检测润滑油中的水分和铁颗粒 润滑油广泛应用于现代机械设备&#xff0c;由于工作环境日益恶劣&#xff0c;润滑油经常被水分乳化&#xff0c;加速对机械设备的腐蚀。此外&#xff0c;润滑油还受到机械零件摩擦中产生的Fe颗粒的污染&#xff0c;削弱了其机械润滑效果。润…...

【新版】系统架构设计师 - 软件架构设计<SOA与微服务>

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 架构 - 软件架构设计&#xff1c;SOA与微服务&#xff1e; 考点摘要 面向服务SOA&#xff08;★★★★&#xff09;微服务&#xff08;★★★★&#xff09; 基于/面向服务的&#xff08;SOA&#xff09; 在SO…...

React+Typescript+react-router 6 创建路由操作

本文我们来看看路由的安装 其实路由的操作没有什么变化 但是还是给大家讲一下 那么我们打开项目 在项目终端输入 npm install --save react-router react-router-dom安装 一下 react-router 和 react-router-dom 这都是react开发很基本的插件了 不过大家安装前先注意好我的版…...

前端list.push,封装多个对象

js var fruit [apple, banana];fruit.push(pear);console.log(fruit); // [apple, banana, pear]现在为对象 data1:{addUser: 1,editUser: 1,addTime: null,editTime: 1527410579000,userId: 3,systemNo: mc,userName: zengzhuo,userPassword: e10adc3949ba59abbe56e057f20f88…...

指令延迟隐藏

一、指令延迟隐藏 1. 延迟和延迟隐藏 指令延迟指计算指令从调度到指令完成所需的时钟周期如果在每个时钟周期都有就绪的线程束可以被执行&#xff0c;此时GPU处于满符合状态指令延迟被GPU满负荷计算状态所掩盖的现象称为延迟隐藏延迟隐藏对GPU编程开发很重要&#xff0c;GPU设…...

《React vs. Vue vs. Angular:2023年的全面比较》

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

win10自带wifi共享功能

1、按下【wini】组合键打开windows设置&#xff0c;点击【网络和internet】&#xff1b; 2、按照下图&#xff0c;打开个移动热点&#xff0c;设置名称、密码。...

React如何实现国际化?

目录 一、Redux准备工作 commonTypes.js commonActions.js commonReducer.js rootReducer.js 二、然后定义SelectLang组件 index.js index.less 三、创建语言包 welcomeLocale.js index.js 四、使用 react的入口文件 App.js welcome.js 附 关于如何实现国际…...

netrw模拟nerdtree的go命令连续打开多个文件

vim9自带的文件浏览器netrw功能很强大。过去用惯了nerdtree的我&#xff0c;对netrw的文件操作还要适应一些时间。 使用netrw一段时间后发现它没有nerdtree的go命令的替代操作&#xff0c;今天就自制一个。 一、制作go命令&#xff1a; nerdtree的go命令功能&#xff1a;就是…...

算法通关村第十九关——动态规划高频问题(白银)

算法通关村第十九关——动态规划高频问题&#xff08;白银&#xff09; 前言1 最少硬币数2 最长连续递增子序列3 最长递增子序列4 完全平方数5 跳跃游戏6 解码方法7 不同路径 II 前言 摘自&#xff1a;代码随想录 动态规划五部曲&#xff1a; 确定dp数组&#xff08;dp tabl…...

Matlab如何导入Excel数据并进行FFT变换

如果你发现某段信号里面有干扰&#xff0c;想要分析这段信号里面的频率成分&#xff0c;就可以使用matlab导入Excel数据后进行快速傅里叶变换&#xff08;fft&#xff09;。 先直接上使用方法&#xff0c;后面再补充理论知识。 可以通过串口将需要分析的数据发送到串口助手&a…...

华为mate60 上线 媒介盒子多家媒体报道

为什么你的品牌营销不见效&#xff1f;如何能推动品牌破圈&#xff1f;让媒介盒子给你一些启发。本期盒子要跟大家分享地新机上市&#xff0c;数码科技行业企业该如何做线上宣传。 HUAWEI Mate 60系列8月29日官宣发布&#xff0c;出色的拍照功能、强大的性能表现和持久的续航能…...

Java知识总结(持续更新)

一、JDK、JRE、JVM三者之间的关系&#xff1f; 1. **JDK (Java Development Kit)**&#xff1a; JDK 是 Java 开发工具包&#xff0c;它包含了用于开发 Java 应用程序的所有必要工具和库。这包括 Java 编译器&#xff08;javac&#xff09;、Java 核心类库、开发工具&#x…...

缓存技术:加速应用,提高用户体验

本文总结前期某个系统中使用到的缓存使用经验—仅此而已,效果还不错。 缓存技术在系统架构设计中扮演着至关重要的角色,它不仅可以显著提高系统的性能,还可以改善用户体验。在本文章中,我们将探讨不同类型的缓存、缓存失效以及缓存淘汰等关键概念,帮助在后期的架构设计中…...

MySQL中分区与分表的区别

MySQL中分区与分表的区别 一、分区与分表的区别 分区和分表是在处理大规模数据时的两种技术手段&#xff0c;尽管它们的目标都是提升系统的性能和数据管理的效率&#xff0c;但它们的实现方式和应用场景略有不同。 1. 分区 分区是将一个大表分割为多个更小的子表&#xff0c…...

Redis主从复制集群的介绍及搭建

在现代的软件开发中&#xff0c;数据的可靠性和可用性是至关重要的。Redis&#xff0c;作为一个开源的、内存中的数据结构存储系统&#xff0c;以其出色的性能和灵活的数据结构&#xff0c;赢得了开发者们的广泛喜爱。而 Redis 的主从复制功能&#xff0c;更是为我们提供了一种…...

MAC M1芯片安装mounty读写移动硬盘中的文件

因为移动硬盘中的文件是微软公司NTFS格式&#xff0c;MAC只支持自己的APFS或者HFS&#xff0c;与微软的NTFS不兼容&#xff0c;所以需要第三方的软件来支持读写硬盘中的文件&#xff0c;经过一上午的折腾&#xff0c;最终选择安装mounty这个免费的第三方软件 工具网址连接&am…...

原生Js Canvas去除视频绿幕背景

Js去除视频背景 注&#xff1a; 这里的去除视频背景并不是对视频文件进行操作去除背景 如果需要对视频扣除背景并导出可以使用ffmpeg等库&#xff0c;这里仅作播放用所以采用这种方法 由于uniapp中的canvas经过封装&#xff0c;且 uniapp 的 drawImage 无法绘制视频帧画面&…...

Vue知识系列(1)每天10个小知识点

目录 系列文章目录知识点**1. Vue修饰符**的概念、作用、原理、特性、优点、缺点、区别、使用场景**2. 双向数据绑定**的概念、作用、原理、特性、优点、缺点、区别、使用场景**3. MVVM、MVC、MVP** 的概念、作用、原理、特性、优点、缺点、区别、使用场景**4. slot** 的概念、…...

Elasticsearch(三)聚合基本使用

基础概念 bucket 数据分组&#xff0c;一些数据按照某个字段进行bucket划分&#xff0c;这个字段值相同的数据放到一个bucket中。可以理解成Java中的Map<String, List>结构&#xff0c;类似于Mysql中的group by后的查询结果。 metric&#xff1a; 对一个数据分组执行…...

单片机C语言实例:14、音频输出

一、喇叭发声原理 程序实例1&#xff1a; #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文件包含特殊功能寄存器的定义sbit SPK P1^2; //定义喇叭端口 /*------------------------------------------------函数声明 --------------…...

docker 和 podman的区别

Podman 和 Docker 都是用于容器化应用程序的工具&#xff0c;它们在很多方面非常相似&#xff0c;但也有一些关键区别&#xff1a; 1. 架构和权限&#xff1a; - Docker&#xff1a;Docker 使用守护进程&#xff08;dockerd&#xff09;来管理容器&#xff0c;它需要在操作…...

苹果手机远程控制安卓手机,为什么不能发起控制?

这位用户想要用iOS设备远程控制安卓设备&#xff0c;在被控端安装好AirDroid之后&#xff0c;就在控制端的苹果手机上也安装了AirDroid&#xff0c;然而打开控制端的软件&#xff0c;却没有在手机界面上看到【远程控制】按钮&#xff0c;于是提出了以上疑问。 解答 想要让iOS设…...

如何查企业做网站是否备案过/五种网络营销推广方法

高额收息、暴力催收……即便被央视“315晚会”曝光&#xff0c;监管部门多方围剿&#xff0c;“714高炮”依然在夹缝中顽强求生。 与监管趋严前高举高打&#xff0c;毫无顾忌相比&#xff0c;如今的“714高炮”开始转入“地下”&#xff0c;并且形成了一条包括引流、支付、催收…...

直销可以做网站有效果吗/找文网客服联系方式

夜光序言&#xff1a; 一盏秋墨绘落时光岁月&#xff0c;是生活人生的风景&#xff0c;一盏秋墨绘出生活人生&#xff0c;是时光岁月的虹桥&#xff0c;一盏秋墨在掌心&#xff0c;开天地开世界&#xff0c;开出生命时间的光辉。 正文&#xff1a;...

扁平化企业网源码win8风格精简化源码asp带后台企业网站/在线网站流量查询

1. 【Resource File 】——【添加】——【资源】 2. 选择【Version】 &#xff0c;点击新建&#xff0c;新建.rc 3. 双击*.rc, 展开如图&#xff1a; FILEVERSION为版本信息 4. FILEVERSION修改为&#xff1a;为666,0,0,1&#xff0c;重新生成DLL 查看其属性-详细信息&#…...

购物网站建设个人总结/成人技术培训班有哪些种类

了解区块链技术的童鞋都知道以太坊的智能合约都是在沙箱&#xff08;Sandbox&#xff09;中运行的&#xff0c;那到底什么是沙箱呢&#xff1f;为什么要在沙箱中进行呢&#xff1f;下面本文就为大家一一介绍。 1.为什么需要沙箱机制&#xff1f; 默认情况下&#xff0c;一个应用…...

模板网站建设价格/网络营销的特点不包括

陌生了&#xff01;以前痴迷的技术&#xff0c;可我仍想拾起&#xff01;转载于:https://blog.51cto.com/mmgsdxb/317666...

为什么做网站越早越好/百度排名

我有一个监视套接字连接的服务.当连接丢失时,需要显示Toast,通知用户它正在重新连接.这是第一次工作正常.之后,我在日志中看到了enqueueToast,但是没有显示吐司.任何想法都赞赏我以为这会是一件容易的事情,但是我一定是缺少一些东西.日志条目INFO/NotificationService(118): en…...