全志ARM-蜂鸣器

sh操作准备:

1.使Tab键的缩进和批量对齐为4格

在/etc/vim/vimrc 中添加一项配置 set tabstop = 4;

也可以再加一行 set = nu显示代码的行数

vim的设置,修改/etc/vim/vimrc文件,需要用超级用户权限

/etc/vim/vimrc
set shiftwidth=4 设置批量对齐时候的tab键空格数为4

2.

如果我们直接gcc编译,系统不认识所使用的功能,需要链接相应的库

我们可以在example中学习别人是如何链接的

orangepi@orangepizero2:~/wiringOP/examples$  vi Makefile

后面我们进行编译时就可以在后面链接库

gcc blink.c -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt

 为了方便编译,可以将以上代码写成脚本,避免繁琐的手动链接

vi build.sh

接线: 

 如图所示对应方向各个引脚,共26个主引脚

蜂鸣器:GND ——9号或14号引脚

                VCC——1号3.3v供电

                I/O口——3号、5号串口

蜂鸣器运行:

#include <stdio.h>#include <wiringPi.h>#include <unistd.h>#define BEEP 0   //设置针脚0为蜂鸣器的控制引脚
int main (void){wiringPiSetup () ;//初始化wiringPi库ipinMode (BEEP, OUTPUT) ;//设置IO口的输入输出,输出
}while(1){//sleep(1);usleep(100000);digitalWrite (BEEP, HIGH) ; //设置IO口输出低电平,蜂鸣器响
//sleep(1);usleep(100000);digitalWrite (BEEP, LOW) ;  //设置IO口输出低电平,蜂鸣器响
}return 0;

usleep的单位是微秒,sleep是秒

shell脚本的参数传递:

ehco=$0;
echo=$1;
gcc $1 -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt

 

./bulid.sh beep.c
./bulid.sh    //对应$0beep.c        //对应$1

 

 beep.c

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

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

相关文章

杰发科技AC7840——CAN通信简介(7)_波形分析

参考&#xff1a; CAN总线协议_stm32_mustfeng-GitCode 开源社区 0. 简介 隐形和显性波形 整帧数据表示 1. 字节描述 CAN数据帧标准格式域段域段名位宽&#xff1a;bit描述帧起始SOF(Start Of Frame)1数据帧起始标志&#xff0c;固定为1bit显性(b0)仲裁段dentify(ID)11本数…

【介绍下如何使用CocoaPods】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Python 基础

文章目录 一、python 的安装二、基本数据类型1. 数字类型2. 非数字类型3. type()函数 三、语法的使用1. 输入print2. 类型的转换1. 转int()类型2. 转float()类型3. 转str()类型 3.输出 print()1. 基本输出2. % 格式化输出f 字符串 4. if 判断5.if else 判断6. if elif else 判断…

普通屏幕已过时?裸眼3D屏幕显示效果更胜一筹!

随着多媒体技术的迅猛进步&#xff0c;我们日常生活中的内容展现方式&#xff0c;已经经历了前所未有的变革。在这其中&#xff0c;裸眼3D屏幕的应用&#xff0c;无疑是最为引人注目的亮点&#xff0c;它相较于传统屏幕&#xff0c;在显示效果上展现出了鲜明的优势&#xff0c;…

MyBatis入门学习三(缓存、高级查询、分页 插件)

目录 1、MyBatis缓存 1.1 一级缓存 1.2 二级缓存 1.2.1 MyBatis实现 1.2.2 第三方实现 2、高级查询 2.1 数据模型 2.2 创建数据库表 2.3 一对一查询 2.3.1 第一种方式 2.3.2 第二种方式 2.4 一对多查询 2.5 多对多查询 2.6 延迟加载 3、分页插件 1、MyBatis缓存 …

【基础篇】Git 基础命令与核心概念

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; 一&#xff0c;Git 初识 1.1&#xff0c;问题引入 不知道你工作或学习时&#xff0c;有没有遇到…

【机器学习】Voting集成学习算法:分类任务中的新利器

Voting集成学习算法&#xff1a;分类任务中的新利器 一、Voting集成学习算法概述二、Voting算法的分类方式三、Voting算法在图像识别中的应用四、结论与展望 在机器学习领域&#xff0c;集成学习算法一直以其出色的性能提升能力而备受关注。其中&#xff0c;Voting集成学习算法…

Ubuntu系统强制用户设置复杂密码

1、安装cracklib模块 安装PAM的cracklib模块&#xff0c;cracklib能提供额外的密码检查能力 sudo apt-get install libpam-cracklib2、可用vim打开配置文件&#xff08;或其它方式&#xff09; sudo vim /etc/pam.d/common-password3、设置密码复杂度 在# here are the per…

JavaSE字节缓冲流

欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后端开发者。 博客特色&#xff1a; 在我的博客中&a…

机器学习之Scikit-learn基础教程

Scikit-learn&#xff08;简称sklearn&#xff09;是一个广泛使用的Python机器学习库&#xff0c;它提供了各种算法和工具&#xff0c;用于数据挖掘和数据分析。本教程将介绍sklearn的基本概念和使用方法。 1. 安装Scikit-learn 如果你还没有安装scikit-learn&#xff0c;可以…

【智能算法】囊状虫群算法(TSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年&#xff0c;S Kaur等人受到囊状虫群自然行为启发&#xff0c;提出了囊状虫群算法&#xff08;Tunicate Swarm Algorithm, TSA&#xff09;。 2.算法原理 2.1算法思想 TSA模拟了囊状虫群在导…

SpringBoot中多数据源灵活切换解决方案

本篇内容介绍了“SpringBoot中如何使用Dynamic Datasource配置多数据源”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 源码地址/文档说明 功能特性: 支持 数据源分组…