通信双方

ARM 开发板为正点原子的阿尔法开发板,Arduino UNO开发板的单片机型号为:ATmega328P

这个单片机只有一个串口。

CH340 是电平转换芯片,RS232和RS485虽然是一种通信协议,但使用上也可以理解成是一种电平转换。

问题由来

为什么会总结一下这个开发板串口使用的问题。

我想通过 ARM开发板(没有电脑那种USB接口的串口,只有RS232接口和RS485接口形式的串口)的RXD和TXD通过RS232接口或者RS485接口与 Arduino 开发板相连接,但是 Arduino 开发板上是通过串口转(利用CH340G芯片)USB口。

ARM开发板端


RS485和RS232只能同时选择一个,用跳帽来决定。

Arduino开发板端

于是,我就想到下面这几种连接情况。

连接方案

但是,最终的本质是 ARM 端的 RXD 与 Arduino 端的TXD相连接,ARM 端的TXD与 Arduino 端的 RXD 相连接,这样才能完成通信。

第一种

ARM 端 – 使用 RS232(公) 转 USB(公) 线连接,Arduino 端 – 使用 USB (公)(开发板上有CH340芯片),双方之间通过 USB 母对母转换器连接。

思考结果:

第二种

双方都要有485芯片来完成收发,

ARM 端 – 使用 RS485, RS485出来的两条线(A线和B线),Arduino 端 – RXD和TXD引脚(要外接一个485模块),双方之间通过杜邦线连接,A线接A线,B线接B线。(貌似都不需要共地)


思考结果:
这种应该是最可靠的吧。

第三种

ARM 端 – 使用 RXD和TXD引脚,Arduino 端 – RXD和TXD引脚,双方之间通过杜邦线交叉连接。(共地是必须的)

思考结果:
猜想:长距离肯定不行,短距离应该可以吧,实际上行不行不知道,没实验过。

第四种

ARM 端 – 使用 RXD和TXD连接杜邦线转USB公头(下图),


Arduino 端 – 使用 USB公头(开发板上有CH340芯片),双方之间通过通过 USB 母对母转换器连接。

思考结果:
猜想:不行,因为此时ARM 端的USB公头其实就是RXD和TXD,而Arduino 端的USB公头则是D+和D-,之间没有电平转换(应该要有CH340类的电平转换芯片才能连接在一起后才行吧)。

第五种

ARM 端 – 使用 RXD和TXD连接杜邦线转USB公头(单片机程序下载器,有CH340),Arduino 端 – 使用 USB公头(开发板上有CH340芯片),双方之间通过通过 USB 母对母转换器连接。

思考结果:
猜想:这种也可以试一试,试一试才知道实际行不行。

遇到问题

因为上面的方案二中需要用到 Arduino 端 – 直接使用 RXD 和 TXD 引脚,所以我就想用 单片机下载器(有CH340)连接 Arduino 开发板上的 RXD 和 TXD 引脚之后通过USB头连接到电脑上,实验一下,结果就是没有达到期望的目的,现象如下:可以通过单片机向电脑发送数据,但不能通过电脑向单片机发送数据。于是,我就拔掉 USB 口,用 Arduino开发板上的 USB 公头插到电脑上来实验,结果是可以正常发送和接收的。

我就在想为什么会造成这种现象,造成这种现象的原因是什么呢?

猜想一:
会不会是当电脑向开发板发送信号后,由于板子上还连接了一个CH340部分的电路造成负载过大,信号能量太低,所以接收不到呢?

于是,我就专门接了一个5V电源来供电,结果仍然是不行的。

猜想二:
既然不是电源的问题,那就再看把CH340部分的电路给去掉试试看呢?那怎么去掉呢,我就把R9和R8这两个电阻给拆了下来。然后,再次实验,果然就好了。

那为什么会造成这种现象呢?与此同时,又有一个想法冒了出来,如果我把两个USB头(5V、GND、TXD、RXD都接)都接到电脑上会怎么样呢?

现象:两个都可以通过单片机向电脑发送数据,但都不能通过电脑向单片机发送数据。

那我把单片机下载器的那个电源(GND和VCC)给去掉呢?

现象:开发板上的那个 USB 可以完全实现收发,而单片机下载器的那个则只能通过单片机向电脑发送数据,但不能通过电脑向单片机发送数据。

结论:这种情况下,电路中同时只能有一个CH340存在,才能保证收发,具体什么原因可能要看CH340这个芯片手册吧,思考一下午了,不想深究了。要想使用开发板上的RXD和TXD引脚,就把R8和R9这两个芯片给去掉。

以 ARM 开发板 和 Arduino UNO 开发板通过串口通信为例,思考嵌入式设备之间通过串口通信的问题总结相关推荐

  1. 基于Arduino Uno开发板的红外遥控开发

    基于Arduino Uno开发板的红外遥控开发 1 准备 1.1 硬件与软件 1.2 走线 2 代码 2.1 ReceiveDump 2.2 SendRawDemo 1 准备 1.1 硬件与软件 单片 ...

  2. Arduino开发(二)_基于Arduino UNO开发板的RGB灯光控制方法

    Arduino开发(二)_基于Arduino UNO开发板的RGB灯光控制方法 首先,我们来看一下Arduino UNO开发板的具体引脚排列,如下图所示, 再了解一下三色RGB LED模块,如下图所示 ...

  3. 基于arduino uno 开发板制作的 智能书包项目

    基于arduino uno 开发板制作的智能书包,当时收短视频启发,集合自动售货机的代码和RC522 读卡模块代码结合制作,现基本功能可以实现 ,目前代码部分尚不稳定需要继续改进 //一个智能书包小发 ...

  4. 详解Arduino Uno开发板的引脚分配图及定义

    详解Arduino Uno开发板的引脚分配图及定义(重要且基础) https://www.cnblogs.com/Bruce_H21/p/11555605.html 首先开发板实物图如下: 在本篇文章 ...

  5. arduino超声波测距接线图详细_使用Arduino UNO开发板和超声波传感器测量距离

    超声波传感器不仅提供距离测量实用程序,而且没有任何物理接触,但需要我们在无噪音和光线的情况下进行测量,与基于激光的距离测量仪器不同.此外,即使在基于激光的仪器经常降低其效率的日光下,这些仪器也便宜且更 ...

  6. 基于Arduino UNO开发板,超声波模块,直流电机,实现电机驱动

    这:是我的手机,一台能无线充电的华为Mate 30Pro 4G 这:是我的的无线充电器,(虽然速度低,毕竟店家送的) 这是我维持一年多的充电样子,为什么这么做呢......因为无线充电会发烫,毕竟无线 ...

  7. Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明

    陈拓 2023/03/24-2023/03/29 1. Arduino CNC Shield V3.00电机驱动扩展版 注意:板子左侧中间的玻璃管是玻封保险丝. Arduino CNC Shield可 ...

  8. 基于Arduino Uno开发板制作音乐播放器

    基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...

  9. mixly for Mac以及Arduino uno开发板的使用

    mixly for Mac以及Arduino uno开发板的使用 mixly for Mac的下载 教程可以参考这个帖子 http://wiki.makerpanda.cc/2016/07/20/05 ...

  10. Arduino UNO开发板开箱体验

    Arduino UNO开发板开箱体验 1.Arduino简述 1.1什么是Arduino  Arduino是一个开源的电子设计平台,包括软件和硬件.其中硬件部分就是一块开发板了,软件部分就是对这块板子 ...

最新文章

  1. 执行SQL-获取缓存
  2. jquery 收藏技巧
  3. 红帽峰会2015所需的JBoss BPM内容指南
  4. nacos集成dubbo实现远程服务调用
  5. centos 6.2安装mysql_CentOS 6.2下安装MySQL_服务器知识学堂-中关村在线
  6. ios 视图切换翻页效果
  7. CDN是什么?CDN的工作原理?使用CDN有什么优势?
  8. word2003流程图变成图片_流程图怎么画word2003
  9. java通过exchange发送邮件(带附件)
  10. 淘宝店铺的装修是店铺的门面,如何进行淘宝店铺装修?需要注意的点有哪些?
  11. WPS 2019专业版制作柱状图含折线图图表(本次为年终数据PPT制作)
  12. 高德离线数据api_高德开放平台数据开放情况和调用实验
  13. css3动画: 3d照片旋转transfrom
  14. MATLAB中如何打角标和希腊字母
  15. bandgap中简并点理解与仿真
  16. MS切面时surface mesh设置小数提示错误解决方案
  17. 编写程序,找出用户输入的一串数的最大数,程序需要提示用户一个一个地输入数,当用户输入0或负数时,程序显示出已输入的最大负整数:
  18. 基于JavaSDK实现微信支付,springboot封装签名过程,直接调用controller层实现调起微信支付接口
  19. UVA 11205 - The broken pedometer
  20. 在服务器开启pathinfo

热门文章

  1. NeuSE: A Neural Snapshot Ensemble Method for Collaborative Filtering(阅读论文笔记)
  2. linux如何显示文件后缀名,如何在win7系统中显示文件后缀名、扩展名
  3. IDEA修改某个文件的编码
  4. linux kvm 的虚拟机处于暂停状态怎么开机 和 KVM-Virsh指令
  5. 河海大学计算机科学学科,2020河海大学计算机考研专业课调整
  6. 电脑忽然不能开机,主板自检灯亮了
  7. 青海干部网络学院 自动学习网站
  8. Cyclone IV E系列介绍
  9. 电脑插上u盘计算机管理有显示,u盘在电脑上一直显示扫描怎么办
  10. 电脑插上U盘后不显示怎么办?