介绍

Arduino最简单的串口通信之TTL协议,转RS485的后面再写,还有SPI,IIC的慢慢学习。。。。
Rx、Tx硬串口基本在一些模块上都能用到,比如DHT温湿度模块。。。

FAQ

  1. 发出去的无论是数据还是字符,接收到的都是Ascii数值
  2. 我自己遇到了串口多次读出了一个数据,如图
  3. 上传失败:两个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屡败屡战记录-将数值重新转换成字符串-重复多次读怎么办??相关推荐

  1. Arduino uno esp01s 硬串口通信

    参考资料: esp 烧录固件 和 烧录程序 esp 通信测试程序 ili9341 tft显示屏使用 零件: Arduino uno ili9341 tft esp01s usb 烧录器 最初的想法是, ...

  2. 【Arduino】双主板串口通信并将光敏传感器信息上传到阿里云

    [Arduino]双主板串口通信并将光敏传感器信息上传到阿里云 文章目录 [Arduino]双主板串口通信并将光敏传感器信息上传到阿里云 前言 一.所需材料 二.掌控板部分 1.引入库 2.配置WiF ...

  3. QT子线程实现串口通信_学习记录

    QT子线程实现串口通信_学习记录 1 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容 ...

  4. 使用51单片机采用中断方式进行串口通信的学习记录:

    使用51单片机进行串口通信的学习记录之中断方式: 1.51单片机采用中断方式的串口通信过程及程序分析: 所谓中断方式,就是串口收/发标志位出发中断后,在中断中执行既定操作,可通过函数调用来实现. 接收 ...

  5. Arduino学习笔记⑥ 硬件串口通信

    文章目录 1.前言 2.常用串口函数 2.1 begin -- 启用串口 2.2 end -- 停用串口 2.3 print.println.printF -- 打印输出数据 2.4 read -- ...

  6. 串口通信Serial

    基础知识 ASCII 表 | 菜鸟教程 (runoob.com) hex取值范围:不同编码有不同的解码范围,超过范围则无法解码 串口通信分类 一.并行通信 8位数据同时通过并行线进行传送,传输速率较高 ...

  7. 使用Arduino完成STM32的串口通信

    目录 一.Arduino 1.Arduino下载 2.Arduino实验示例 a.开发板设置 b.Arduino编译烧录 二.基于STM32两种库 标准库函数 HAL库函数 三.Stduino 一.A ...

  8. python串口通信 - serial

    安装 pip install pyserial 方法 # 获取当前系统内的所有检测到的串口信息 serial.tools.list_ports.comports()""" ...

  9. Labview串口通信中ASCII码和数值相互转换

    对于串口通信,labview提供了visa的写入和读取函数,网上关于如何使用有大把的介绍,但是其写入和读取都是缓冲区,所以对应的控件都是字符串,在串口通信是,自动转换成字符对应的ASCII码的十六进制 ...

最新文章

  1. POI简易帮助文档系列--给Excel设置样式
  2. 基于Nginx实现10万+并发,你应该做的Linux内核优化
  3. sd-wan公司组网解决方案效果如何?
  4. php自动滚动到页尾,让DOM元素自动滚到视野内ScrollIntoView
  5. libusb的使用教程和例子
  6. jwt如何加盐_JWT 基础教程
  7. 芯片烧录软件Android版,HiTool官方版
  8. 【托马斯微积分11版---英文】读书笔记:前言--未完待续
  9. Linux服务篇--企业级调度器LVS
  10. 如何解决硬盘固件区损坏?只要学会这几步
  11. 使用Bugzilla,你肯定会遇到的坑。
  12. python hist alpha_matplotlib可视化篇hist()--直方图
  13. 从html到pug模板,html 模板 pug
  14. 终于等来了十一长假,当然要戴上你去这些美到哭的地方
  15. Oracle 按年、月、日、周、季度连续查询
  16. Fedora 常用软件推荐
  17. mysql开启row模式_MySQL Binlog Mixed模式记录成Row格式
  18. openvino系列 15. OpenVINO OCR
  19. C语言课设会员计费系统(大作业)
  20. 《SpringBoot框架学习二之HTTP协议》

热门文章

  1. 轻松解决自签名证书不安全!
  2. AI换脸踩坑记录:Faceshifter
  3. 基于MATLAB和python输出曼德勃罗集
  4. 华为6面,测试岗报价11k,HR说我不尊重华为,他们没有那么低薪资岗位?
  5. keil5字体颜色设置
  6. PS常见错误-无法完成请求,因为文件格式模块不能解析该文件
  7. Git服务--码云-初识
  8. CARLA Simulator——开源自动驾驶模拟器
  9. 密室逃脱7环游世界古董区花盆谜题
  10. 【mos 1494646.1】Patch Installation and Deinstallation For 11.2.0.3.x GI PSU