Orangepi Zero2使用外设驱动库wiringOP驱动蜂鸣器

 

目录

一、安装外设驱动库

1.1 wiringPi外设SDK安装:

二、使用wiringOP库驱动蜂鸣器

2.1 蜂鸣器的硬件连接:

2.2 使用wiringOP库实现蜂鸣器滴滴响:

2.3 设置vim代码显示格式:


一、安装外设驱动库

1.1 wiringPi外设SDK安装:

方式一:
git clone https://github.com/orangepi-xunlong/wiringOP 			//下载源码
cd wiringOP 													//进入文件夹
sudo ./build clean 												//清除编译信息
sudo ./build 													//编译
gpio readall													//查看外设库是否安装成功方式二:
通过windows浏览器打开https://github.com/orangepi-xunlong/wiringOP
把压缩包通过xterm传到开发板解压 unzip xxx.zip
cd xxx
sudo ./build
gpio readall

验证指令: gpio readall 如下方所示,外设库就完成安装了

二、使用wiringOP库驱动蜂鸣器

2.1 蜂鸣器的硬件连接:

  • 蜂鸣器I/O口对应的物理引脚的3号,其实对应的wPi的第0号

2.2 使用wiringOP库实现蜂鸣器滴滴响:

#include <stdio.h>
#include <wiringPi.h>
#include <unistd.h>#define BEEP 0							//设置针脚0为蜂鸣器控制引脚int main (void)
{wiringPiSetup();					//初始化wiringPi库pinMode (BEEP, OUTPUT) ;			//设置蜂鸣器IO口为输出模式while(1){digitalWrite (BEEP, LOW);		//设置蜂鸣器IO口输出低电平蜂鸣器响	usleep(300000);					//延时300ms//sleep(1);digitalWrite (BEEP, HIGH);		//设置蜂鸣器IO口输出高电平蜂鸣器不响usleep(300000);					//延时300ms//sleep(1);}return 0;
}

 代码写完之后我们编译,我们直接用gcc编译会出错:

还需要链接库:-lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt,但是每次写这么一大串很麻烦,所以可以写一个脚本:build.sh

shell脚本应该适用于各种程序的名字:$0		./build.sh
$1		beep.cshell脚本处理参数可以通过$来处理,这里的$1就是要编译的文件
gcc $1 -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt

我们创建了一个脚本,往脚本里面写入了内容,但是发现脚本无法运行,原因是我们新创建的脚本是没有权限的

需要使用指令chmod +x build.sh来赋予它执行的权限

 此时按照对应的格式进行编译,就生成了可执行程序a.out

注意!生成的a.out可执行程序,需要使用sudo超级用户权限来运行,然后输入密码之后我们就听到了蜂鸣器滴滴响了

 我们可以看到蜂鸣器对应的GPIO的Mode就变成了OUT输出模式

2.3 设置vim代码显示格式:

手动对齐的Tab和自动对齐从8个空格设置成4个空格&自动显示行号的方法:

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

我们可以看到修改之后的代码,我们在写代码的时候舒服多了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scala的Actor模型:并发编程的革新

引言 在现代软件开发中&#xff0c;尤其是涉及到大数据和分布式系统时&#xff0c;处理并发问题变得至关重要。Scala语言以其强大的并发模型——Actor模型&#xff0c;为开发者提供了一种高效、可伸缩的方式来构建并发应用程序。本文将深入探讨Scala的Actor模型&#xff0c;包…

Free Pascal语言基础学习:定义变量、数据类型、循环语句、case语句、条件判断、with语句、运算符

Pascal是一种结构化编程语言&#xff0c;而Free Pascal作为其现代编译器&#xff0c;不仅支持跨多种操作系统和处理器架构&#xff0c;还提供了高效的内存使用和函数重载等先进功能。Free Pascal继承了Pascal语言的核心特性&#xff0c;同时进行了扩展和优化&#xff0c;使其成…

zdppy_api+vue3+antd实现文件上传功能

后端代码 因为zdppy框架是一个低代码框架&#xff0c;所以后端接口是特别简单的一句话就能搞定。 import api import upload from api.middleware import corssave_dir "uploads"app api.Api(routes[upload.upload("/upload", save_dir)],middleware[c…

Driver.js 轻量级、互动式的功能引导效果

主要功能和特点 1. 高亮显示&#xff1a;高亮显示网页上的特定元素&#xff0c;吸引用户注意。 2. 多步骤引导&#xff1a;支持创建多个步骤的引导&#xff0c;每一步都可以高亮不同的元素并提供相应的说明。 3. 弹出提示&#xff1a;在高亮元素旁边显示弹出提示&#xff0c…

顺序结构程序设计(python)

文章目录 1.python运算符1.1 python算数运算1.2python比较运算符1.3 Python赋值运算符1.4 python逻辑运算符1.5 python成员运算符1.6python身份运算符1.7python运算符优先级 2.python数据类型2.1Python 数字类型转换2.2 Python 数字运算2.3 python数学函数2.4 python随机数函数…

开源大模型:技术革新与未来展望

开源大模型&#xff1a;技术革新与未来展望 随着开源程序的发展&#xff0c;越来越多的程序员开始关注并加入开源大模型的行列。开源不仅推动了技术的进步&#xff0c;也创造了一个共享与合作的生态系统。在这个背景下&#xff0c;开源大模型成为了众多技术爱好者和专业人士的…

基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

PHP护照识别API、护照识别设备

我国经济发展迅速&#xff0c;更多人已经不局限在国内旅游&#xff0c;去国外游玩的人越来越多。巴厘岛是度假胜地&#xff0c;自然也吸引了许多我国的游客。近期&#xff0c;受阿贡火山喷发影响&#xff0c;巴厘岛伍拉莱国际机场于11月27日7时起临时关闭。我国南京的谢女士和朋…

vrrp与mstp

简单实验步骤

「C系列」C 命令行参数

文章目录 一、C 命令行参数二、C 命令行参数-应用场景1. 指定配置选项2. 处理文件3. 传递参数值 三、相关链接 一、C 命令行参数 C语言命令行参数是在运行程序时通过命令行传递给程序的额外信息或数据&#xff0c;用于自定义程序的行为&#xff0c;使程序能够执行不同的操作或…

Aiseesoft Screen Recorder v2解锁版安装教程 (屏幕录像工具)

前言 Aiseesoft Screen Recorder 是一个易于使用的屏幕捕捉工具&#xff0c;可以在您的计算机上录制任何视频或音频并以高质量保存它们。这款功能强大的视频屏幕录制应用程序可以帮助您在 Windows 11/10/8/7 上抓取在线电影和广播、捕捉游戏、制作视频教程、录制网络摄像头视频…

java类的加载 ,类加载器以及双亲委派机制详细介绍

1_类的加载 路径 类的加载过程类的加载时机 类的加载 当程序在运行后&#xff0c;第一次使用某个类的时候&#xff0c;会将此类的class文件读取到内存&#xff0c;并将此类的所有信息存储到一个Class对象中 说明&#xff1a;Class对象是指java.lang.Class类的对象&#xff0c…

解码语言的奥秘:Transformer 与传统 RNN 的比较

1. 引言 介绍自然语言处理的重要性以及 RNN 和 Transformer 在此领域中的应用。 2. 循环神经网络&#xff08;RNN&#xff09;的基本原理 简要介绍 RNN 的工作原理&#xff0c;包括其如何通过循环结构处理序列数据。 3. 自注意力机制 解释自注意力机制的概念&#xff0c;以…

【2024最新版】图解Mysql数据库配置、命令行及Workbench访问(Windows版本)

目录 1. 准备工作1.1 安装MySQL1.2 验证MySQL的环境变量 2. 环境变量配置3. 访问MySQL3.1 命令行访问MySQL3.2 Workbench访问MySQL 1. 准备工作 1.1 安装MySQL 如果您已经安装了MySQL&#xff0c;请从【2. Mysql 环境配置】开始&#xff1b;如果您没有安装MySQL&#xff0c;请…

[Gstreamer] gstbasesink 的 QOS 机制

前言&#xff1a; gstreamer里很多element都提供 QOS 机制&#xff0c;src&#xff0c;filter 和 sink 都有。Sink element 的 QOS 机制由 gstbasesink 统一提供。 qos (quality of service) 是一种评价机制&#xff0c;这个领域中都有这一概念&#xff0c;比如网络的qos。…

使用ffmpeg调整视频分辨率/帧率并保持高清晰度

1、原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg -i input.mp4 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-v…

java数组转列表

Arrays.asList 是 Java 中的一个方法&#xff0c;用于将数组转换为固定大小的列表。这个方法在 java.util.Arrays 类中定义&#xff0c;常用于将数组转换为 List 以便使用集合框架中的其他方法。 主要特性 转换数组为列表&#xff1a;将一个数组转换为一个 List&#xff0c;从…

【MySQL】数据库的索引机制

文章目录 前言1. 索引是什么2. 索引的优缺点2.1 优点2.2 缺点 3. 索引的操作3.1 创建索引3.2 查看索引3.3 删除索引 4. 索引的存储原理4.1 B树4.2 B树 结语 前言 在数据库中&#xff0c;我们经常使用到的操作就是查询&#xff0c;当数据量小的时候&#xff0c;查询的速度很快&…

COMSOL - 一个点光源是否总能照亮整个房间?

20 世纪 50 年代&#xff0c;数学家恩斯特施特劳斯&#xff08;Ernst Straus&#xff09;提出了一个有趣的问题&#xff1a;在一个侧壁由理想反射镜构成的任意形状的空房间里&#xff0c;一个点光源是否总能照亮整个房间&#xff1f;诺贝尔奖获得者罗杰彭罗斯&#xff08;Roger…

1S013485认证:企业腾飞的引擎

在全球化的今天&#xff0c;企业要想在激烈的市场竞争中立于不败之地&#xff0c;必须不断提升自身的综合实力。1S013485认证正是帮助企业实现这一目标的重要工具。获得这项认证&#xff0c;企业不仅能在市场竞争中占据优势&#xff0c;还能在多个层面实现质的飞跃&#xff0c;…