以 ARM 开发板 和 Arduino UNO 开发板通过串口通信为例,思考嵌入式设备之间通过串口通信的问题总结
通信双方
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 开发板通过串口通信为例,思考嵌入式设备之间通过串口通信的问题总结相关推荐
- 基于Arduino Uno开发板的红外遥控开发
基于Arduino Uno开发板的红外遥控开发 1 准备 1.1 硬件与软件 1.2 走线 2 代码 2.1 ReceiveDump 2.2 SendRawDemo 1 准备 1.1 硬件与软件 单片 ...
- Arduino开发(二)_基于Arduino UNO开发板的RGB灯光控制方法
Arduino开发(二)_基于Arduino UNO开发板的RGB灯光控制方法 首先,我们来看一下Arduino UNO开发板的具体引脚排列,如下图所示, 再了解一下三色RGB LED模块,如下图所示 ...
- 基于arduino uno 开发板制作的 智能书包项目
基于arduino uno 开发板制作的智能书包,当时收短视频启发,集合自动售货机的代码和RC522 读卡模块代码结合制作,现基本功能可以实现 ,目前代码部分尚不稳定需要继续改进 //一个智能书包小发 ...
- 详解Arduino Uno开发板的引脚分配图及定义
详解Arduino Uno开发板的引脚分配图及定义(重要且基础) https://www.cnblogs.com/Bruce_H21/p/11555605.html 首先开发板实物图如下: 在本篇文章 ...
- arduino超声波测距接线图详细_使用Arduino UNO开发板和超声波传感器测量距离
超声波传感器不仅提供距离测量实用程序,而且没有任何物理接触,但需要我们在无噪音和光线的情况下进行测量,与基于激光的距离测量仪器不同.此外,即使在基于激光的仪器经常降低其效率的日光下,这些仪器也便宜且更 ...
- 基于Arduino UNO开发板,超声波模块,直流电机,实现电机驱动
这:是我的手机,一台能无线充电的华为Mate 30Pro 4G 这:是我的的无线充电器,(虽然速度低,毕竟店家送的) 这是我维持一年多的充电样子,为什么这么做呢......因为无线充电会发烫,毕竟无线 ...
- Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明
陈拓 2023/03/24-2023/03/29 1. Arduino CNC Shield V3.00电机驱动扩展版 注意:板子左侧中间的玻璃管是玻封保险丝. Arduino CNC Shield可 ...
- 基于Arduino Uno开发板制作音乐播放器
基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...
- mixly for Mac以及Arduino uno开发板的使用
mixly for Mac以及Arduino uno开发板的使用 mixly for Mac的下载 教程可以参考这个帖子 http://wiki.makerpanda.cc/2016/07/20/05 ...
- Arduino UNO开发板开箱体验
Arduino UNO开发板开箱体验 1.Arduino简述 1.1什么是Arduino Arduino是一个开源的电子设计平台,包括软件和硬件.其中硬件部分就是一块开发板了,软件部分就是对这块板子 ...
最新文章
- 执行SQL-获取缓存
- jquery 收藏技巧
- 红帽峰会2015所需的JBoss BPM内容指南
- nacos集成dubbo实现远程服务调用
- centos 6.2安装mysql_CentOS 6.2下安装MySQL_服务器知识学堂-中关村在线
- ios 视图切换翻页效果
- CDN是什么?CDN的工作原理?使用CDN有什么优势?
- word2003流程图变成图片_流程图怎么画word2003
- java通过exchange发送邮件(带附件)
- 淘宝店铺的装修是店铺的门面,如何进行淘宝店铺装修?需要注意的点有哪些?
- WPS 2019专业版制作柱状图含折线图图表(本次为年终数据PPT制作)
- 高德离线数据api_高德开放平台数据开放情况和调用实验
- css3动画: 3d照片旋转transfrom
- MATLAB中如何打角标和希腊字母
- bandgap中简并点理解与仿真
- MS切面时surface mesh设置小数提示错误解决方案
- 编写程序,找出用户输入的一串数的最大数,程序需要提示用户一个一个地输入数,当用户输入0或负数时,程序显示出已输入的最大负整数:
- 基于JavaSDK实现微信支付,springboot封装签名过程,直接调用controller层实现调起微信支付接口
- UVA 11205 - The broken pedometer
- 在服务器开启pathinfo
热门文章
- NeuSE: A Neural Snapshot Ensemble Method for Collaborative Filtering(阅读论文笔记)
- linux如何显示文件后缀名,如何在win7系统中显示文件后缀名、扩展名
- IDEA修改某个文件的编码
- linux kvm 的虚拟机处于暂停状态怎么开机 和 KVM-Virsh指令
- 河海大学计算机科学学科,2020河海大学计算机考研专业课调整
- 电脑忽然不能开机,主板自检灯亮了
- 青海干部网络学院 自动学习网站
- Cyclone IV E系列介绍
- 电脑插上u盘计算机管理有显示,u盘在电脑上一直显示扫描怎么办
- 电脑插上U盘后不显示怎么办?