Arduino入门2——常用函数及用法

Arduino入门2——串口驱动函数及用法

  • IO
  • 串口

上期,我们简单的认识了一下Arduino,浅浅的入了个门,这一期我们介绍以下Arduino串口常用的函数及用法

IO

常用串口库函数如下:

函数名用法及解析
pinMode()用于IO口初始化
digitalWrite()对IO口写入高低电平
digitalRead()读取IO口的高低电平
analogReference()配置AD采集的参考电压
analogWrite()对应IO口实现AD转换,精度可达10位
analogRead()对应IO口实现DA转换,精度为8位

下面是对应的一些用法:

  1. pinMode()
    在这里插入图片描述

  2. digitalWrite()
    在这里插入图片描述

  3. digitalRead()
    在这里插入图片描述

  4. analogReference()
    在这里插入图片描述

  5. analogWrite()
    在这里插入图片描述

  6. analogRead()

在这里插入图片描述

串口

常用串口库函数如下:

函数名用法及解析
Serial.begin(9600)用于串口初始化,参数为波特率
Serial.print(val,fromat)串口输出函数,val为输出的内容,fromat为输出格式,可以省略,省略时默认为十进制
Serial.println(val,fromat)串口输出函数,相对于Serial.print的区别是自带换行
Serial.write(val)串口输出函数,发送单个字节或字符串
Serial.available()用于检测串口是否接收到数据,返回值为读取数据的长度
Serial.read()串口读取函数,每次读取一个字节并返回,当串口没有接收到数据时,返回-1,读取完数据后,下次调用会读取下个字节
Serial.parselnt()串口解析函数,用来读取接收到的数据中的整数,在读取到整数后读取到字符会停止,读取后缓冲区内的内容会被清除。比如读取的内容为123adc456,则需要读取两次,第一次读取到123.第二次读取adc456,但由于adc为字符,所有只读取456。
Serial.parseFloat()也是串口解析函数,用来读取小数

下面是对应的一些用法:

  1. 示例1:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);   //串口初始化
}

void loop() {
  // put your main code here, to run repeatedly:

  Serial.print("Hello");   //发送字符串
  Serial.print('A');       //发送字符
  Serial.println(25);        //默认以10进制发送数字25
  Serial.println(25,DEC);        //十进制发送数字25 -》 25
  Serial.println(25,BIN);        //二进制发送数字25 -》 11001
  Serial.println(25,OCT);        //八进制发送数字25 -》 31
  Serial.println(25,HEX);        //八进制发送数字25 -》 19
  Serial.print(1.2345);    //发送1.23,默认保留2位小数,四舍五入
  delay(50000);
}
  1. 结果1:
    在这里插入图片描述
  2. 示例2:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);   //串口初始化
}

void loop() {
  // put your main code here, to run repeatedly:

  for(int i = 0 ;i<Serial.available();i++)  //判断是否介绍到数据,
  {
    Serial.write(Serial.read()); //依次打印介绍的数据
    Serial.println();            //换行
    delay(500);                  // 延时,让显示更直观

  }

}
  1. 结果2:
    在这里插入图片描述
  2. 示例3:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);   //串口初始化
}

void loop() {
  // put your main code here, to run repeatedly:

  for(int i = 0 ;i<Serial.available();i++)  //判断是否介绍到数据,
  {
    Serial.print(Serial.parseInt()); //依次打印接收的整数
    Serial.println();            //换行
    delay(500);                  // 延时,让显示更直观

  }
  1. 结果3:
    在这里插入图片描述
  2. 建立开发板与电脑串口连接,像电脑发送姓名、年龄、身高等信息
//1. 建立开发板与电脑串口连接,像电脑发送姓名、年龄、身高等信息
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.write("naem: 不想写代码的我");
  Serial.println();
  Serial.write("age: 18");
  Serial.println();
  Serial.write("height: 180");
  Serial.println();
  delay(1000);
}
  1. 实现通过串口监视器给开发板发送信息,在把接收的信息发送回去
//实现通过串口监视器给开发板发送信息,在把接收的信息发送回去
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  for(int i =0; i<Serial.available();i++)
  {
    Serial.write(Serial.read());
    Serial.println();
    delay(500);

  }

  
}
  1. 实现加法计算器
//实现加法计算器,
int Add(int a,int b)
{
  Serial.print(a);
  Serial.print('+');
  Serial.print(b);
  Serial.print('=');
  Serial.println(a+b);
 return a+b;
}
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available())
  {
    Add(Serial.parseInt(),Serial.parseInt());

  }```

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【iOS】自定义cell及其复用机制

文章目录 cell的复用注册非注册两者的区别 自定义cell cell的复用 当用户滚动 UITableView 或 UICollectionView 时,只有少量可见的 cell 会被实际创建和显示。对于那些暂时不可见的 cell,系统会将它们缓存起来以备将来复用。这就是所谓的 cell 复用机制。 为什么需要cell的复…

【招联消费金融股份】有限公司2024年5月19日【算法开发岗暑期实习】二面试经验分享

招联消费金融股份有限公司2024年5月18日面试经验分享 面试流程&#xff1a;30分钟 面试流程&#xff1a;30分钟 先自我介绍3分钟然后介绍论文和实习&#xff0c;细细问。问对招联了解多少&#xff1f;对实习地点怎么样&#xff1f;反问&#xff0c;正常聊天。 创作不易&#x…

数字化转型中的数据资产运营:从数据资产的获取、存储、分析到应用的全流程管理策略

一、引言 随着信息技术的迅猛发展&#xff0c;数字化转型已成为企业提升竞争力、实现可持续发展的关键途径。数据资产作为数字化转型的核心要素&#xff0c;其运营与管理水平直接决定了企业能否在激烈的市场竞争中脱颖而出。本文将从数据资产的获取、存储、分析到应用的全流程…

vue关于:deep穿透样式的理解

情况一 子组件&#xff1a; <div class"child"><div class"test_class">test_class<div class"test1">test1<div class"test2">test2</div></div></div></div>父组件&#xff1a; …

Java爬虫——正则表达式应用

Pattern Matcher均属于regex下 步骤&#xff1a;pattern获取正则&#xff0c;matcher获取文本对象&#xff0c;find截取字符串&#xff08;返回true、false&#xff09;&#xff0c;group获得字符 例题&#xff1a;爬取指定文字 分析&#xff1a; 二次调用时&#xff1a; 循环…

【vue3中使用$refs】

在使用uniapp官网里的uni-popup弹出层组件时&#xff0c;要将vue2转换成vue3,&#xff0c;这里遇到了一个问题&#xff1a;vue2可以通过this访问到绑定的ref&#xff0c;但是vue3没有了this,应该怎么办呢&#xff1f; 解决方法&#xff1a; !

Cocos Creator,Youtube 小游戏!

YouTube 官方前段时间发布了一则重磅通知&#xff0c;宣布平台旗下小游戏功能 Youtube Playables 正式登录全平台&#xff08;安卓、iOS、网页&#xff09;&#xff0c;并内置了数十款精选小游戏。 Youtube Playables 入口&#xff1a; https://www.youtube.com/playables Coco…

Digital电路仿真软件的安装

文章目录 1. Java环境的安装 2. Digital安装 3. 软件配置 1. Java环境的安装 电路仿真软件Digital是一款用于设计和仿真数字逻辑电路的工具。它可以帮助用户创建、测试和调试各种数字电路&#xff0c;提供可视化的电路编辑环境&#xff0c;使得设计过程更加直观和便捷。 D…

Sigir2024 ranking相关论文速读

简单浏览一下Sigir2024中与ranking相关的论文。不得不说&#xff0c;自从LLM大热后&#xff0c;传统的LTR方向的论文是越来越少了&#xff0c;目前不少都是RAG或类似场景下的工作了&#xff0c;比如查询改写、rerank等。 文章目录 The Surprising Effectiveness of Rankers Tr…

centos环境上:k8s 简单安装教程

本次演示安装3节点k8s环境&#xff0c;无需多言&#xff0c;直接上操作步骤&#xff1a; 1、环境准备 k8s部署前&#xff0c;首先需要准备好环境&#xff0c;除了1.4 步骤&#xff0c;其他步骤在所有&#xff08;3个&#xff09;节点上都要执行&#xff1a; 1.1 关闭防火墙 s…

CSS【详解】样式选择器的优先级(含提升优先级的方法)

数值越大&#xff0c;优先级越高&#xff0c;尽量保持较低的优先级&#xff0c;以便使用更高优先级的选择器重置样式 0级——通配选择器、选择符和逻辑组合伪类。逻辑组合伪类有:not()、:is()和:where等&#xff0c;这些伪类本身并不影响CSS优先级&#xff0c;影响优先级的是括…

C++初学者指南第一步---1. C++开发环境设置

C初学者指南第一步—1. C开发环境设置 目录 C初学者指南第一步---1. C开发环境设置1.1 工具1.1.1 代码编辑器和IDE1.1.2 Windows1.1.3 命令行界面 1.2 编译器1.2.1 gcc/g (支持Linux/Windows/MacOSX)1.2.2 clang/clang (支持Linux/Windows/MacOS)1.2.3 Microsoft Visual Studio…

C/C++李峋同款跳动的爱心代码

一、写在前面 在编程的世界里&#xff0c;代码不仅仅是冷冰冰的命令&#xff0c;它也可以成为表达情感、传递浪漫的工具。今天&#xff0c;就让小编带着大家用C语言打造出李峋同款跳动的爱心吧&#xff01; 首先&#xff0c;我们需要知道C作为一种高级编程语言&#xff0c;拥…

常见的宽基指数基金

指数基金投资指南 ❝ 这篇博客里面的内容主要来自于银行螺丝钉的《定投十年&#xff0c;财务自由》和《指数基金投资指南》这两本书中章“常见的宽基指数”&#xff0c;最近第三次读这本书&#xff0c;打算做一点笔记加深自己的印象。 博客中很多内容是从书中摘抄的&#xff0c…

二十六、办公用品管理系统

随着计算机技术的迅猛发展,相关技术进入商业和社会应用阶段,设备的种类、数量越来越多,如何有效利用先进的互联网技术和日新月异的计算机设备来有效地收集、处理这些设备,建立以信息化为核心的管理体制,减轻管理人员和业务人员的数据处理负担,极大地提高设备管理效率和管…

Jmeter多个请求按照比例并发压测的几种方式

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、需求 在压测的过程中&#xff0c;为了能够压测整个链路&#xff0c;通常需要多个接口进行并…

HarmongOS打包[保姆级]

创建应用 首先进入 华为开发者联盟-HarmonyOS开发者官网 然后进行登录。 登录成功后&#xff0c;鼠标悬停在在登录右上角那个位置后再点击管理中心&#xff0c;进入下面这个界面。 再点击&#xff1a;应用服务–>应用发布–>新建–>完善信息 构建和生成私钥和证书请求…

SQL Server Management Studio (SSMS) 20.1 - 微软数据库管理工具

SQL Server Management Studio (SSMS) 20.1 - 微软数据库管理工具 请访问原文链接&#xff1a;https://sysin.org/blog/ssms/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 笔者注&#xff1a;SQL Server 2014 及之前版本内置…

[Linux] UDP协议介绍:UDP协议格式、端口号在网络协议栈那一层工作...

TCP/IP网络模型, 将网络分为了四层: 之前的文章中以HTTP和HTTPS这两个协议为代表, 简单介绍了应用层协议. 实际上, 无论是HTTP还是HTTPS等应用层协议, 都是在传输层协议的基础上实现的 而传输层协议中最具代表性的就是: UDP和TCP协议了. 以HTTP为例, 在使用HTTP协议通信之前, …

调度算法(SSTF,SCAN,CSCAN)c语言

假定当前磁头位于100号磁道&#xff0c;有9个进程先后提出了磁盘I/O请求&#xff1a;55 58 39 18 90 160 150 38 184&#xff0c;如果采用扫描算法或循环扫描算法&#xff0c;则磁头向磁道号增加的方向访问。 设计一个磁盘调度模拟系统&#xff0c;编程序演示下述算法的具体实…