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.rhkb.cn/news/351197.html

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

相关文章

28.启动与暂停程序

上一个内容&#xff1a;27.设计注入功能界面 以它 27.设计注入功能界面 的代码为基础进行修改 点击添加游戏按钮之后就把游戏启动了 CWndINJ.cpp文件中修改&#xff1a; void CWndINJ::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码/*ExeLst.InsertItem(0, L…

Opus从入门到精通(五)OggOpus封装器全解析

Opus从入门到精通(五)OggOpus封装器全解析 为什么要封装 前面Opus从入门到精通(四)Opus解码程序实现提到如果不封装会有两个问题: 无法从文件本身获取音频的元数据(采样率,声道数,码率等)缺少帧分隔标识,无法从连续的文件流中分隔帧(尤其是vbr情况) 针对上面的问题我们可以…

4-异常-log4j配置日志滚动覆盖出现日志丢失问题

4-异常-log4j配置日志打印滚动覆盖出现日志丢失问题(附源码分析) 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff08;纯纯技术文&…

springboot依赖管理和自动配置

依赖管理和自动配置 依赖管理和自动配置依赖管理什么是依赖管理修改自动仲裁/默认版本号 starter场景启动器starter场景启动器基本介绍官方提供的starter第三方starter 自动配置自动配置基本介绍SpringBoot自动配置了哪些?如何修改默认配置如何修改默认扫描包结构resources\ap…

openGauss 6.0.0 一主二备集群安装及使用zcbus实现Oracle到openGauss的数据同步

一、前言 openGauss 6.0.0-RC1是openGauss 2024年3月发布的创新版本&#xff0c;该版本生命周期为0.5年。根据openGauss官网介绍&#xff0c;6.0.0-RC1与之前的版本特性功能保持兼容,另外&#xff0c;在和之前版本兼容的基础上增加了很多新功能&#xff0c;比如分区表性能优化…

skywalking9.4 链路追踪

下载&#xff0c;很慢很慢很慢&#xff01;&#xff01;&#xff01;&#xff01; jdk 使用jdk17 skywalking-apm 9.4 java-agent 9.0 idea 本地开发配置 第1行配置按实际来&#xff1b; 第2行自定义&#xff0c;一般和微服务名称相同&#xff1b; 第3行ip写安装的机器ip,端…

OpenGL3.3_C++_Windows(5)

变换 && 3D空间的2D图形 /\/\/\/\/\//\/\/\/\/\/\/\/\//\/\///\/\/\/\//\/\/\/\//\//\/\/\/\/\\/GLM库从0.9.9版本起&#xff0c;默认会将矩阵类型初始化为一个零矩阵&#xff08;所有元素均为0&#xff09;&#xff0c;而不是单位矩阵&#xff08;对角元素为1&#…

如何更新 iOS 18 Beta 版本?具体步骤总结

如何更新 iOS 18 Beta 想必有一些用户已经迫不及待的想要知道怎么更新 iOS 18 Beta 版本了吧&#xff0c;下面就给大家总结了具体的操作步骤&#xff1a; 在更新 iOS 18 Beta 版本之前记得我们需要将手机的数据进行备份&#xff0c;大家可以自行选用备份软件比如 iCloud 等。…

Eureka到Nacos迁移实战:解决配置冲突与启动异常

问题&#xff1a;Eureka到Nacos迁移实战&#xff1a;解决配置冲突与启动异常 在进行微服务架构升级&#xff0c;特别是注册中心从Eureka转向Nacos的过程中&#xff0c;我遇到了一个典型的技术挑战。目标是为了减少因配置变更导致的服务重启频率&#xff0c;我决定拥抱Nacos以其…

如何避免重复创建线程?创建线程池的方式有哪些?各自优缺点有哪些?

如何避免重复创建线程?创建线程池的方式有哪些?各自优缺点有哪些? 1、案例分析2、创建线程池的方式1、案例分析 我们在使用一些app的时候,应该都收到过消息推送,它们往往依赖消息推送服务实现。事实上,互联网大厂都有自己的消息推送服务(又名Message Push Server),通…

详解 Spring Security:全面保护 Java 应用程序的安全框架

详解 Spring Security&#xff1a;全面保护 Java 应用程序的安全框架 Spring Security 是一个功能强大且高度可定制的框架&#xff0c;用于保护基于 Java 的应用程序。它为身份验证、授权、防止跨站点请求伪造 (CSRF) 等安全需求提供了解决方案。下面将更详细地介绍 Spring Se…

复星杏脉算法面经2024年5月16日面试

复星杏脉算法面经2024年5月 面试记录&#xff1a;3个部分1. 自己介绍 2. 问八股 3.代码题先自我介绍20分钟问问题1. 梯度爆炸怎么解决&#xff0c;三个解决方案&#xff1a;梯度裁剪&#xff08;Gradient Clipping&#xff09;正则化&#xff08;Regularization&#xff09;调整…

Flink Sql:四种Join方式详解(基于flink1.15官方文档)

JOINs flink sql主要有四种连接方式&#xff0c;分别是Regular Joins、Interval Joins、Temporal Joins、lookup join 1、Regular Joins&#xff08;常规连接 &#xff09; 这种连接方式和hive sql中的join是一样的&#xff0c;包括inner join&#xff0c;left join&#xff…

java Springboot网上音乐商城(源码+sql+论文)

1.1 研究目的和意义 随着市场经济发展&#xff0c;尤其是我国加入WTO &#xff0c;融入经济全球化潮流&#xff0c;已进入国内外市场经济发展新时期&#xff0c;音乐与市场联系越来越紧密&#xff0c;我国音乐和网上业务也进入新历史发展阶段。为了更好地服务于市场&#xff0…

Studio One 6.6.2 for Mac怎么激活,有Studio One 6激活码吗?

如果您是一名音乐制作人&#xff0c;您是否曾经为了寻找一个合适的音频工作站而苦恼过&#xff1f;Studio One 6 for Mac是一款非常适合您的MacBook的音频工作站。它可以帮助您轻松地录制、编辑、混音和发布您的音乐作品。 Studio One 6.6.2 for Mac具有直观的界面和强大的功能…

全网爆火《pvz植物大战僵尸杂交版》最新安装包,Android、Windows、ios安装包+教程!

今天阿星想和大家分享一个最近在B站上引起轰动的老游戏——《植物大战僵尸》&#xff01; 是的&#xff0c;你没听错&#xff0c;就是那个曾经让我们熬夜到天亮&#xff0c;一关接一关挑战的游戏。 让我们来聊聊&#xff0c;这款游戏怎么就突然又火了起来呢&#xff1f; 原来…

AI玩具来了,它怎么样?

90后的我们&#xff0c;是AI时代的见证者。20后的小孩&#xff0c;才是AI时代的原著民。当ChatGPT们改变着大人的工作方式&#xff0c;我觉得&#xff0c;是时候让孩子们的玩具也更聪明些了吧。于是&#xff0c;在六一前夕&#xff0c;我用市面上的AI语音对话套件给娃DIY了一套…

简单的基于Transformer的滚动轴承故障诊断(Pytorch)

递归神经网络在很长一段时间内是序列转换任务的主导模型&#xff0c;其固有的序列本质阻碍了并行计算。因此&#xff0c;在2017年&#xff0c;谷歌的研究人员提出了一种新的用于序列转换任务的模型架构Transformer&#xff0c;它完全基于注意力机制建立输入与输出之间的全局依赖…

Docker-Portainer可视化管理工具

Docker-Portainer可视化管理工具 文章目录 Docker-Portainer可视化管理工具介绍资源列表基础环境一、安装Docker二、配置Docker加速器三、拉取Portainer汉化版本镜像四、运行容器五、访问可视化界面 介绍 Portainer是一款开源的容器管理平台&#xff0c;它提供了一个直观易用的…