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进制发送数字25Serial.println(25,DEC);        //十进制发送数字25 -》 25Serial.println(25,BIN);        //二进制发送数字25 -》 11001Serial.println(25,OCT);        //八进制发送数字25 -》 31Serial.println(25,HEX);        //八进制发送数字25 -》 19Serial.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.mzph.cn/diannao/28391.shtml

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

相关文章

2024050802-重学 Java 设计模式《实战模板模式》

重学 Java 设计模式&#xff1a;实战模版模式「模拟爬虫各类电商商品&#xff0c;生成营销推广海报场景」 一、前言 黎明前的坚守&#xff0c;的住吗&#xff1f; 有人举过这样一个例子&#xff0c;先给你张北大的录取通知书&#xff0c;但要求你每天5点起床&#xff0c;12点…

Proteus 新建工程

Proteus 新建工程 新建简单工程 首先在File工具栏中点击New Project&#xff0c;弹出新建工程向导程序(New Proteus Wizard) 填写工程名称与存储路径&#xff0c;选择New Proteus并点击Next进行下一步设置 我们不需要生成PCB文件&#xff0c;一路默认&#xff0c;点击Next即…

实战计算机网络02——物理层

实战计算机网络02——物理层 1、物理层实现的功能2、数据与信号2.1 数据通信模型2.2 通信领域常用术语2.3 模拟信号和数字信号 3、信道和调制3.1 信道3.2 单工通信、半双工通信、全双工通信3.3 调制3.4 奈式准则3.5 香农定律 4、传输媒体4.1 导向传输媒体4.2 非导向传输媒体 5、…

高级人工智能复习 题目整理 中科大

题目整理 填空 1.准确性&#xff0c;复杂性&#xff0c;验证集 2. 3 2 n 3^{2^n} 32n 3 C 2 n m 3^{C^m_{2n}} 3C2nm​ 3 m 3^m 3m n 1 n1 n1 3. 状态 从状态s采取行动a后继续采用策略 π \pi π的收益 环境 4. 语法 语义 推理规则 5. 参与者&#xff0c;策略集&#xff…

Elasticsearch 8.1官网文档梳理 - 十一、Ingest pipelines(管道)

Ingest pipelines 管道&#xff08;Ingest pipelines&#xff09;可让让数据在写入前进行常见的转换。例如可以利用管道删除文档&#xff08;doc&#xff09;的字段、或从文本中提取数据、丰富文档&#xff08;doc&#xff09;的字段等其他操作。 管道&#xff08;Ingest pip…

VirtualBox、Centos7下安装docker后pull镜像问题、ftp上传文件问题

Docker安装篇(CentOS7安装)_docker 安装 centos7-CSDN博客 首先&#xff0c;安装docker可以根据这篇文章进行安装&#xff0c;安装完之后&#xff0c;我们就需要去通过docker拉取相关的服务镜像&#xff0c;然后安装相应的服务容器&#xff0c;比如我们通过docker来安装mysql,…

vue 使用 ztree 超大量数据,前端树形结构展示

ztree 是一个很经典的基于jquey开发的树结构编辑展示UI组件库。 创建一个文件 ztree.vue&#xff0c;代码如下&#xff1a; <template><div><div class"ztree vue-giant-tree" :id"ztreeId"></div><div class"treeBox&q…

Termius安装docker

安装Termius 直接上官网 新建主机 更新一下yum 更新完成 安装docker的包 直接用命令安装 设置一下开机启动&#xff0c;可以查看docker的版本

Ui学习--UITableView

UI学习 UITableView基础UITableView协议UITableView高级协议与单元格总结 UITableView基础 UITableView作为iOS中的一个控件&#xff0c;用于以表格形式展示数据。例如通讯录好友&#xff0c;朋友圈信息等&#xff0c;都是UITableView的实际运用场景。 首先我们先要加入两个协…

K210使用雷龙NAND完成火灾检测

NAND 文章目录 NAND前言一、NAND是什么&#xff1f;二、来看一看NAND三、部署火灾检测 前言 前几天收到了雷龙NAND的芯片&#xff0c;一共两个芯片和一个转接板&#xff0c;我之前也没有使用过这款芯片&#xff0c;比较好奇&#xff0c;体验了一下&#xff0c;个人认为&#x…

嵌入式微处理器重点学习(三)

堆栈操作 R1=0x005 R3=0x004 SP=0x80014 STMFD sp!, {r1, r3} 指令STMFD sp!, {r1, r3}是一条ARM架构中的存储多个寄存器到内存的指令,这里用于将r1和r3寄存器的内容存储到栈上。STMFD(Store Multiple Full Descending)是一种全递减模式的多寄存器存储指令,它会先将栈指针…

three.js 基础01

1.场景创建 Scene() 2.常用形状集几何体「Geometry」[可设置长宽高等内容,如:new THREE.BoxGeometry(...)] 长方体 BoxGeometry圆柱体CylinderGeometry 球体SphereGeometry圆锥体ConeGeometry矩形平面 PlaneGeometry 圆面体CircleGeometry 3.常用材质「Materi…

linux 部署瑞数6实战(维普,药监局)sign第二部分

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx …

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

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

宠物健康顾问系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;顾问管理&#xff0c;用户管理&#xff0c;健康知识管理&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;公告管理 顾问账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;顾…

头歌资源库(7)汉诺塔(循环)

一、 问题描述 二、算法思想 初始化三个柱子A、B、C&#xff0c;初始时所有的盘子都在柱子A上。对于从1到N&#xff08;N表示盘子的数量&#xff09;的每一个数字i&#xff0c;执行以下循环&#xff1a; a. 如果i是偶数&#xff0c;则将柱子B视为目标柱子&#xff0c;柱子C视为…

Python时间序列分析库

Sktime Welcome to sktime — sktime documentation 用于ML/AI和时间序列的统一API,用于模型构建、拟合、应用和验证支持各种学习任务,包括预测、时间序列分类、回归、聚类。复合模型构建,包括具有转换、集成、调整和精简功能的管道scikit学习式界面约定的交互式用户体验Pro…

【原创】springboot+mysql小区用水监控管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

AI 定位!GeoSpyAI上传一张图片分析具体位置 不可思议! ! !

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;常见AI大模型部署&#xff1a;点击&#xff01; &#x1f916;Ollama部署LLM专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月16日12点23分 &#x1f004;️文章质量&#xff1a;94分…

动态规划日常刷题

力扣70.爬楼梯 class Solution {public int climbStairs(int n) {return dfs(n);}//递归 //注意每次你可以爬 1 或 2 个台阶//如果最后一步是1 就先爬到n-1 把它缩小成0-n-1的范围//如果最后一步是2 就先爬到n-2 把它缩小成0-n-2的范围 private int dfs(int i){if(i < 1){r…