查看: 13960|回复: 4

Arduino串口通信——硬串口

[复制链接]

该用户从未签到

发表于 2018-10-7 15:33 | 显示全部楼层 |阅读模式
为了便于后期问题的解决,在此我们梳理一下Arduino的硬串口(HardwareSerial)与软串口(SoftwareSerial)之前的区别与联系,以及在使用过程中应该注意的问题。
1.PNG

以常见的Arduino UNO为例,面板上只有一组串行端口,即引脚 0(RX)和1(TX)。 电脑与Arduino的通信即通过这两个端口进行,USB口通过一个转换芯片(通常为ATmega16 u2)与这两个串口引脚连接,虽然表面上电脑没有直接用外置的电线与这两个引脚相连,但是二者之间的效果是一样的。当Arduino控制器使用USB线与计算机相连时,两者之间便建立了串口连接。通过此连接,Arduino控制器可与计算机相互传数据了。

通常一个串口只能连接一个设备进行通信(划重点)。

为了让读者理解的更加深刻,在此以曾经犯过的一个错误为例:

2.PNG

项目是通过Arduino+ESP8266实现联网传输数据的功能,为了提高性能我选择了ESP8266通信端口与Arduino的硬串口相连接。程序编译没有错误,但是在上传的过程中总是报错,而这个错误就是因为我的串口同时和两个设备相连接导致的。

3.PNG

相信聪明的读者,肯定不会犯这种幼稚错误的,在此博君一笑。

2018/7/4




该用户从未签到

发表于 2019-8-1 18:28 | 显示全部楼层
6666666666

该用户从未签到

发表于 2020-2-11 17:44 | 显示全部楼层
学习了,谢谢作者

该用户从未签到

发表于 2021-8-21 08:01 | 显示全部楼层
楼主好!我最近在学习串口方面的知识,对于帖子中的内容我有一个问题还望楼主赐教。我尝试了一下先断开其余设备和rx、tx引脚(0、1)的连接,将arduino通过usb和PC连接下载程序,当程序烧录完成后断开USB,使用另外的电源供电,再将rx、tx引脚接上其它模块如文中的esp8266,则此时rx,tx端口是只与模块通信吧不知道可不可以,还是说这个硬串口只能用来和PC通信。望楼主赏光赐教。

该用户从未签到

发表于 2022-1-14 16:01 | 显示全部楼层
星际小辉辉 发表于 2021-8-21 08:01
楼主好!我最近在学习串口方面的知识,对于帖子中的内容我有一个问题还望楼主赐教。我尝试了一下先断开其余 ...

这样没问题我就这么干过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

毕设求助!max30102与gy906实现脉搏体温测量
毕设求助!max30102与gy90
各位大佬,我最近在搞毕业设计,想通过arduino,max30102,gy906实现脉搏体温测量,但
arduino解码sbus
arduino解码sbus
市面上有很多sbus接收机,它只有一根线就可以实现很多通道的通信,其本质利用了串口通
香蕉派 BPI-R3 开源路由器开发板采用 联发科MT7986(Filogic 830)
香蕉派 BPI-R3 开源路由器
香蕉派 BPI-R3 开源路由器开发板采用 联发科MT7986(Filogic 830)芯片设计,支持Wi-Fi 6
求智能垃圾桶编程代码
求智能垃圾桶编程代码
求大佬解答 很急!!
安信可ESP32点灯APP自动浇花和天气空气质量
安信可ESP32点灯APP自动浇
本人是完全不懂C语言,大部分都是借鉴各位大佬的,没有时间和精力去学习C语言,能达
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表