Arduino入门_串口通信
一、Arduino串口通信
串口(COM口):是Arduino与其他设备进行通信的接口。
Q:连接电脑USB的线为什么可以上传程序,而电源线无法上传?
A:PC一端的数据线接口是USB接口,连接Arduino这一端的接口类型是RS-232转成的TTL232接口。两者指的是电平标准。标准RS-232最高电压达正负15V,计算机串口是标准的RS-232,许多单片机的串口都是TTL电平,电源电压一般为+5V,因此,为了互连,必须进行电平转换。现在的计算机一般没有下图这种串口,就需要一个USB转串口的转换器。而电源线是DC接口,是一种为转变输入电压后有效输出固定电压的接口。
Q:波特率是什么?
A:我们可以把波特率理解为双方通信的速率,接收和发送的速率要保持一致,只有速率保持一致双方进行通信才不会产生数据的损失。波特率一般会设置为9600或115200.波特率也不是越高越好,这跟处理器的主频有关,主频最好是波特率的整数倍,否则会增加错误率。
Q:TX、RX是什么?
A:TX(transport)、RX(receive)是串口通信的引脚。Arduino Uno开发板上,串口位于0(RX)和1(TX)引脚上,经过串口转换芯片(下图黄色位置)连接计算机USB端口与计算机进行通信。使用串口功能的同时不能使用0和1作为输入或输出。
串口相关函数
函数 | 描述 |
Serial.read() | 每次都会返回一个字节的数据,这个返回值便是当前串口读取到的数据。读到后就删除这个数据。 |
Serial.begin(speed) | 设置波特率 |
Serial.available() | 获取串口接收到的数据个数,即获取串口接收缓冲区的字节数 |
Serial.print() | 从串口输出数据 |
Serial.println() | 从串口输出数据,并输入一个换行符 |
Serial.write() | 以字节的形式输出到串口 |
Serial.end() | 结束串口通信 |
例子:输入字符控制LED亮灭
void setup() {pinMode(8,OUTPUT); //设置引脚8为输出模式Serial.begin(9600); //设置串口波特率9600
}int val=0;void loop() {val = Serial.read(); //读取计算机发送给控制板的指令复制给valif(val=='T'){digitalWrite(8,HIGH); //点亮LEDSerial.println("LED ON"); //并输出}if(val=='F'){digitalWrite(8,LOW); //熄灭LEDSerial.println("LED OFF"); //并输出}
}
在 “工具” → “串口监视器” 处输入,会显示输出。
二、按键输入
INPUT模式
将引脚设置为输入模式。但此时不能直接与Arduino开发板的GND,和输入电压引脚相连,否则可能会损坏Arduino。而INPUT_PULLUP即输入上拉模式,这里用到了上拉电阻,上拉电阻是当某输入端口未连接设备或处于高阻抗的情况下,一种用于保证输入信号为预期逻辑电平的电阻元件。等效于在该引脚与VCC之间连接了一个电阻,稳定输入输出电平。
例子:按下按键点亮LED,再按一次熄灭LED
int state; //定义按键状态
int last; //按键上一次的状态
int count; void setup() {pinMode(13,OUTPUT); //设置为输出模式pinMode(11,INPUT_PULLUP); //设置为Serial.begin(9600); //设置波特率
}void loop() {state = digitalRead(11); //读取引脚11的状态if(state != last){if(state){count++;}}last = state; //把这次的状态复制给上一次if(count%2){digitalWrite(13,HIGH); //点亮}else{digitalWrite(13,LOW); //熄灭}
}
电路
Arduino入门_串口通信相关推荐
- 09_51入门_串口通信
前言 在使用计算机的大多数时间中,我们需要通过一定的物理接口,达到与外界通信的目的,单片机本质上也是计算机,麻雀虽小,五脏俱全,不同于USB这样的庞然大物,绝大多数单片机都拥有串口UART,在日常的使 ...
- SoftwareSerial库的使用——Arduino软件模拟串口通信
除HardwareSerial外,Arduino还提供了SoftwareSerial类库,它可以将你的其他数字引脚通过程序模拟成串口通信引脚. 通常我们将Arduino UNO上自带的串口称为硬件串口 ...
- 单片机_串口通信知识详解
单片机_串口通信详解 楼主在实际的项目开发过程中,特别是用一些比较常见的传感器,使用最多的通信方式可能就是串口通信了,特别是UART(通用异步收发器),线少,虽然传输速度没有并行传输高,但是 ...
- Ariduino入门笔记——9. Arduino 默认函数(串口通信)
文章目录 什么是串口 Serial 串口函数 串口准备--if(Serial) 获取可读取的字节数--available() 获取可写入的最大字节数--availableForWrite() 串口连接 ...
- C#串口通信工作笔记0001---嵌入式_串口通信_数据发送
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个是最终的样子程序的 这个是这次要做的程序的样子 使用这个串口通信的小控件 4800是波特率 D ...
- mysql与串口通信_串口通信 - ShawnXie - 博客园
1.并行通信 2.串口通信 (1)同步通信(synchronous data communication,SYNC) 指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),保证 ...
- 两个串口通信助手之间通信_串口通信原理
LC串口通信原理 PLC各型主机均内建2个通信接口的标准配置,即一个RS232和一个RS485通信接口,其RS232接口主要用于上下载程序或用来与上位机.触摸屏通信,而RS485接口主要用于组建使用R ...
- 计算机的串口波特率,什么是波特率_波特率9600是什么意思_串口通信为什么要设置波特率?...
描述 波特率(Baud Rate) 单位 bps -- 每秒传送的字节数 Byte Per Second.. (BaudRate) 模拟线路信号的速率,也称调制速率,以波形每秒的振荡数来衡量.如果数据 ...
- 基于STM32F103入门4——串口通信
STM32F103串口篇 串口的基本概念 串行和并行 串行 并行 通信方式 全双工 半双工 单工 波特率 波特率计算 串口的配置 代码编写步骤 串口的重定向 串口的例程 main.c usart.c ...
最新文章
- mysql免费框架_瞧一瞧~看一看~MyCat架构剖析免费不要钱!(上)
- 快手基于 Apache Flink 的优化实践
- C++中直接存取类私有成员[360度]
- HTTP之Last-Modified、Etage、If-Modified-Since理论与实践(C++ Qt实现)
- java邮件设置成可修改_Java实现发送邮件(可配置)忘记密码,发送邮件
- 报告:中国人对AI的乐观程度远超其他国家
- linux操作字符串、文本常用命令总结
- 安装pdf虚拟打印机驱动失败的解决办法(addprinterdriver找不到指定模块)
- 《麦田里的守望者》谁又不是以过来人的身份,来做一个麦田里的守望者呢?
- FBX SDK下载安装教程
- 香港等海外公司如何开通认证微信公众号?
- 两年内5000万台电脑都要换成国产电脑
- vuejs-- webpack环境下父子组件的使用
- 图像处理:均值滤波算法
- (四十二)模态框的使用
- 菲尔博士的三十六交际方式
- python截取图片中的圆形区域
- 学生HTML网页作业:基于HTML+CSS+JavaScript画家企业8页
- linux安装应用程序dbd,Linux下安装DBI和DBD
- 【免费分享】4月24日精选行业报告分享-免费行业报告下载(7份)