当前位置: 首页 > news >正文

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());}```

相关文章:

  • 实战计算机网络02——物理层
  • 免费个人站 独立站 wordpress 自建网站
  • linux 部署瑞数6实战(维普,药监局)sign第二部分
  • [C++] 小游戏 斗破苍穹 2.11.6 版本 zty出品
  • JVM原理之运行时数据区域
  • 【深度学习】 深入浅出:人脸识别技术的步骤、实现与匹配方法,如何进行人脸识别?
  • 基于Python+OpenCV高速公路行驶车辆的速度检测系统
  • 外包公司泛滥,这些常识你应该提前知道?
  • 常见场景的业务逻辑漏洞以及安全设计
  • 6.2 文件的缓存位置
  • 创建你的第一个Windows程序
  • Github 2024-06-10开源项目周报 Top15
  • 【区分】累次极限与二重极限
  • 机器学习中的神经网络重难点!纯干货(上篇)
  • 神经网络开发
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • CentOS 7 修改主机名
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS实用技巧
  • MaxCompute访问TableStore(OTS) 数据
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PHP 7 修改了什么呢 -- 2
  • Redis中的lru算法实现
  • spring学习第二天
  • Sublime text 3 3103 注册码
  • 从零开始在ubuntu上搭建node开发环境
  • 第2章 网络文档
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 回顾2016
  • 力扣(LeetCode)56
  • 跳前端坑前,先看看这个!!
  • 想写好前端,先练好内功
  •  一套莫尔斯电报听写、翻译系统
  • MPAndroidChart 教程:Y轴 YAxis
  • NLPIR智能语义技术让大数据挖掘更简单
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​iOS安全加固方法及实现
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • (c语言)strcpy函数用法
  • (C语言)共用体union的用法举例
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (一)插入排序
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET构架之我见
  • @EnableWebSecurity 注解的用途及适用场景
  • [ NOI 2001 ] 食物链
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [100天算法】-目标和(day 79)
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序