Arduino Rx、Tx硬串口通信Serial屡败屡战记录-将数值重新转换成字符串-重复多次读怎么办??
介绍
Arduino最简单的串口通信之TTL协议,转RS485的后面再写,还有SPI,IIC的慢慢学习。。。。
Rx、Tx硬串口基本在一些模块上都能用到,比如DHT温湿度模块。。。
FAQ
- 发出去的无论是数据还是字符,接收到的都是Ascii数值
- 我自己遇到了串口多次读出了一个数据,如图
- 上传失败:两个Uno共地,上传时拔掉Rx\Tx的接线,因为上传程序也是通过串口上传,Rx和USB抢道。
正文
发生数据方
/** 串口通信-发送数据方*/
int data = 52;void setup() {Serial.begin(9600); //初始化串口while (!Serial) { //等待串口正常工作; }
}void loop() {Serial.write(data); //发送数值信息Serial.println(F("String test")); //发送字符信息,为什么加了一个F(),官方文档说的delay(1000); //延时一下,不然发送的太频繁
}
接收数据方
入门版
入门版没有将数值转换成对应的字符并连接起来
/** 串口通信-接受数据方*/
String readdata = "";void setup() {Serial.begin(9600); //初始化串口while (!Serial) { //等待串口正常工作; }
}void loop() {while(Serial.available() > 0) //当串口有数据就读取数据{Serial.print("Uno recieve: ");Serial.println(Serial.read());}delay(100);
}
基础版
将Ascii数值转换成对应的字符并连接起来,并解决了重复读的问题
/** 串口通信-接受数据方*/
String readdata = "";void setup() {Serial.begin(9600); //初始化串口while (!Serial) { //等待串口正常工作; }
}void loop() {while(Serial.available() > 0) //当串口有数据就读取数据{readdata = readdata +char(Serial.read()); //将分立的单个数据转化为字符后连接起来}if(readdata.length() > 0) //有数据才显示{Serial.print("Uno recieve: ");Serial.println(readdata);readdata = ""; //清空数据缓存} delay(100);
}
自定义版
支持数据信息拆分
目前没用到。。
References
- https://www.arduino.cc/reference/en/language/functions/communication/serial/write/
- https://blog.csdn.net/wangsiqi91/article/details/80966761
- https://blog.csdn.net/qq_37101732/article/details/80578570
Arduino Rx、Tx硬串口通信Serial屡败屡战记录-将数值重新转换成字符串-重复多次读怎么办??相关推荐
- Arduino uno esp01s 硬串口通信
参考资料: esp 烧录固件 和 烧录程序 esp 通信测试程序 ili9341 tft显示屏使用 零件: Arduino uno ili9341 tft esp01s usb 烧录器 最初的想法是, ...
- 【Arduino】双主板串口通信并将光敏传感器信息上传到阿里云
[Arduino]双主板串口通信并将光敏传感器信息上传到阿里云 文章目录 [Arduino]双主板串口通信并将光敏传感器信息上传到阿里云 前言 一.所需材料 二.掌控板部分 1.引入库 2.配置WiF ...
- QT子线程实现串口通信_学习记录
QT子线程实现串口通信_学习记录 1 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容 ...
- 使用51单片机采用中断方式进行串口通信的学习记录:
使用51单片机进行串口通信的学习记录之中断方式: 1.51单片机采用中断方式的串口通信过程及程序分析: 所谓中断方式,就是串口收/发标志位出发中断后,在中断中执行既定操作,可通过函数调用来实现. 接收 ...
- Arduino学习笔记⑥ 硬件串口通信
文章目录 1.前言 2.常用串口函数 2.1 begin -- 启用串口 2.2 end -- 停用串口 2.3 print.println.printF -- 打印输出数据 2.4 read -- ...
- 串口通信Serial
基础知识 ASCII 表 | 菜鸟教程 (runoob.com) hex取值范围:不同编码有不同的解码范围,超过范围则无法解码 串口通信分类 一.并行通信 8位数据同时通过并行线进行传送,传输速率较高 ...
- 使用Arduino完成STM32的串口通信
目录 一.Arduino 1.Arduino下载 2.Arduino实验示例 a.开发板设置 b.Arduino编译烧录 二.基于STM32两种库 标准库函数 HAL库函数 三.Stduino 一.A ...
- python串口通信 - serial
安装 pip install pyserial 方法 # 获取当前系统内的所有检测到的串口信息 serial.tools.list_ports.comports()""" ...
- Labview串口通信中ASCII码和数值相互转换
对于串口通信,labview提供了visa的写入和读取函数,网上关于如何使用有大把的介绍,但是其写入和读取都是缓冲区,所以对应的控件都是字符串,在串口通信是,自动转换成字符对应的ASCII码的十六进制 ...
最新文章
- POI简易帮助文档系列--给Excel设置样式
- 基于Nginx实现10万+并发,你应该做的Linux内核优化
- sd-wan公司组网解决方案效果如何?
- php自动滚动到页尾,让DOM元素自动滚到视野内ScrollIntoView
- libusb的使用教程和例子
- jwt如何加盐_JWT 基础教程
- 芯片烧录软件Android版,HiTool官方版
- 【托马斯微积分11版---英文】读书笔记:前言--未完待续
- Linux服务篇--企业级调度器LVS
- 如何解决硬盘固件区损坏?只要学会这几步
- 使用Bugzilla,你肯定会遇到的坑。
- python hist alpha_matplotlib可视化篇hist()--直方图
- 从html到pug模板,html 模板 pug
- 终于等来了十一长假,当然要戴上你去这些美到哭的地方
- Oracle 按年、月、日、周、季度连续查询
- Fedora 常用软件推荐
- mysql开启row模式_MySQL Binlog Mixed模式记录成Row格式
- openvino系列 15. OpenVINO OCR
- C语言课设会员计费系统(大作业)
- 《SpringBoot框架学习二之HTTP协议》
热门文章
- 轻松解决自签名证书不安全!
- AI换脸踩坑记录:Faceshifter
- 基于MATLAB和python输出曼德勃罗集
- 华为6面,测试岗报价11k,HR说我不尊重华为,他们没有那么低薪资岗位?
- keil5字体颜色设置
- PS常见错误-无法完成请求,因为文件格式模块不能解析该文件
- Git服务--码云-初识
- CARLA Simulator——开源自动驾驶模拟器
- 密室逃脱7环游世界古董区花盆谜题
- 【mos 1494646.1】Patch Installation and Deinstallation For 11.2.0.3.x GI PSU