西电A测:串口通信仿真

这篇具有很好参考价值的文章主要介绍了西电A测:串口通信仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:Arduino UNO(Atmega328P)通过串行接口组件与上位机 PC 进行双向 通信。PC 机用串口调试助手软件向 Arduino UNO 发送学生自己的学号,Arduino UNO 收到后在 LCD 上显示学生的学号,并且向 PC 机发送 “OK” 。PC 机上的串口调试助手软件接收窗口显示收到的字符串“OK”。

intro

西电 2022 年秋 A测 题2,仅供大家学习参考。

希望能为忙于考研/推免的 XDUer 省点事(

软件安装

干活居然不给软件(
本次用到的软件有4个:

  • Proteus:仿真软件;
  • Virtual Serial Port Driver(VSPD):用于创建虚拟串口;
  • XCOM:用于串口调试(可以换串口调试助手、SSCOM 等其他软件);
  • Arduino IDE1.8.19:用于芯片编程;

下载地址与安装教程如下:
proteus 下载
vspd(虚拟串口)、xcom(串口助手)下载
arduino 官网下载(可能得自己挑版本) 或者 百度网盘(提取码 7ed8,exe 安装)

流程

1. 创建虚拟串口

打开 VSPD ,点击右边的 Add pair 创建一对虚拟串口(默认是 COM1 和 COM2 )。
西电A测:串口通信仿真

这里的 COM1 到 4 都是虚拟串口,两两一组构成一个虚拟的串口通信线路,多开的两个是用来测试的;COM6 是物理串口,不碰它就是了。

2. 使用 XCOM 测试串口

直接运行 XCOM V2.0.exe,在右上角选择串口 COM2 后,COM1 留至仿真时使用:
西电A测:串口通信仿真

这里打开两个窗口进行测试(COM3 和 COM4):
西电A测:串口通信仿真
COM3 确实收到了 COM4 发送的信息,注意这里需要保持 XCOM 打开且停留在接受信息的串口才能收到。

3. Arduino 编程

完整代码如下:

#include <Wire.h>
#include <LiquidCrystal.h>				// LCD控制相关的库
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 	// 初始化对象
String str = "";	// 用于暂存后面读取的数据(学号)

// 这部分代码仅在开始运行一次
void setup() {
  Serial.begin(9600);	// 初始化串口
  lcd.begin(16, 2);		// 定义LCD的列数和行数
  lcd.print("Hello(");
}

// 这部分会无限循环
void loop() {
  if (Serial.available()>0){
    // 清除LCD上一次显示
    lcd.clear();
    lcd.println("STUDENT ID");
    lcd.setCursor(0, 1);
  	
    // 循环读取串口信息
    while (Serial.available()>0){
      str += char(Serial.read());
      delay(10);		// 如果不加延迟,可能会无法读取到完整的字符串
    }
    
    // LCD显示,返回OK
    lcd.print(str);
    Serial.println("OK");
    str = "";
  }
}

打开首选项
西电A测:串口通信仿真
显示详细输出,两个都选上
西电A测:串口通信仿真

端口选择 COM1:
西电A测:串口通信仿真

点击左上角 验证,完成后打开右下角目录(注意AppData是隐藏文件夹):
西电A测:串口通信仿真

找到 *.ino.hex 文件,复制出来备用(建议放在后面的 proteus 项目文件夹下)
西电A测:串口通信仿真

4. 仿真

用 proteus 打开附件给的项目文件 Serial communication.pdsprj
西电A测:串口通信仿真

双击左上角芯片打开设置,这里改为前面的 *.ino.hex 文件,然后确定
西电A测:串口通信仿真

双击右下串口组件,设置端口为 COM1:
西电A测:串口通信仿真

点击左下角仿真,LCD 有输出(Hello)
西电A测:串口通信仿真

XCOM 选择 COM2,输入信息后点击发送
西电A测:串口通信仿真

最后结果:
西电A测:串口通信仿真

FAQ

1. Arduino IDE 编译后没有文件地址
打开首选项
西电A测:串口通信仿真
显示详细输出,两个都选上
西电A测:串口通信仿真

2. 编译后没有 *.ino.hex
注意这里生成的 .ino.hex 文件不在项目(源文件)目录下,一般会生成在 C:\\Users\\lenovo\\AppData\\Local\\Temp\\arduino_build_**** 目录下

3. hello 显示不出来
确认一下这里是不是改了(重开项目/软件后可能会重置,也可能是上次编辑完忘保存了)
西电A测:串口通信仿真

4. 打开 XCOM 报错
打开 XCOM /修改 XCOM 串口时报错如图
西电A测:串口通信仿真
可能的原因:

  1. 之前打开过的虚拟串口关掉后没开(比如昨天 XCOM 使用 COM3 后关掉,今天重新打开 XCOM 但没有开 COM3);
  2. 虚拟串口被占用(仿真开着,另一个 XCOM 占用着等);

解决:
先关掉 XCOM ,看看 VSPD 里面对应的串口是否开了,是否占用,然后重开。
图中串口后面有 [9600-N-8-1] 之类的就说明该串口被占用(仿真开着 / XCOM 在使用该串口)。可以在 XCOM 中换一下串口,看看这里有没有变化,没有变化就需要重开 XCOM。
西电A测:串口通信仿真

5. 关于串口占用
不要在 XCOM 占着 COM1 时跑仿真,也不要两个 XCOM 同时选一个串口。

6. 双击芯片弹出 Internal Exception: access violation in module 'LXLCORE.DLL'[00028A28]

  1. 尝试用管理员权限打开文件 / proteus
  2. 尝试重新下载学校的文件
  3. 新建工程,把原文件的元件整个复制过去(见评论)


最后

这种时间出个A测属实难顶,好在除了找软件麻烦点,其他都是点点调库完事,加油罢(

果然不该留到半夜再肝,刚发现游戏日常忘刷了(淦


ref

VSPD+XCOM+Proteus仿真stm32串口通信

Arduino 串口的使用

Proteus 8.9 模拟仿真Arduino控制点亮LED

Arduino – LiquidCrystal库文章来源地址https://www.toymoban.com/news/detail-408971.html

到了这里,关于西电A测:串口通信仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity Arduino 串口通信

    一、 Unity 端 发送消息 , Arduino 端 接收消息 通过 串口通信 Arduino端 Unity端 实现串口通信,点击开灯按钮,灯亮。关灯按钮,灯灭。 二、 Unity 端 接收消息 , Arduino 端 发送消息 通过 串口通信 Arduino端 Unity端 1.导入 Ardity 插件(在Unity商城中找) 2.打开读写实例场景  3.添加读

    2024年02月12日
    浏览(34)
  • ESP32+Arduino 第二串口使用(串口通信)

    使用原因:使用GPS的时候需要ESP32从串口接收GPS模块的串口数据 第二串口位置:(标记为TX2与RX2的地方) 代码: 同理,如果想给其他模块输出数据可以用: 最后附上Arduino的在线模拟平台 https://wokwi.com/

    2024年02月13日
    浏览(40)
  • Arduino软串口通信的实现及softwareserial库应用详解

        我们都知道Arduino UNO板的数字IO端口为D0~D13,其中D0、D1还作为串口通信的接收(Rx)、发送(Tx)端口,当Arduino UNO板外接的串口通信模块超过一个时,怎么办?此外,我们调试程序时经常会用到串口显示语句Serial.print(),如果我们的模块占用了这个串口,就没法用Seri

    2023年04月09日
    浏览(31)
  • 【Proteus仿真】【Arduino单片机】HC05蓝牙通信

    本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶、HC05蓝牙传感器等。 主要功能: 系统运行后,LCD1602显示蓝牙接收数据。 B站演示视频:https://space.bilibili.com/444388619 视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、ardu

    2024年04月16日
    浏览(54)
  • Arduino与LU-ASR01语音识别模块的双向串口通信实现

        之前我写了一篇《Arduino的智能语言输入实现》,讨论了Arduino与LU-ASR01之间通过串口通信实现Arduino的中文语音输入,不过那个通信是不完整的,因为LU-ASR01的串口只有一个发送端口TX,而没有接收端口RX。其实在真正的应用中,LU-ASR01通常也需要接收上位机的数据,例如为确

    2024年02月05日
    浏览(319)
  • 【PROTEUS-51单片机串口通信仿真】

    本次实验对51单片机的串口进行了双机通信的仿真,实现了51单片机的简单双机通信;现对本次仿真的结构及实现的功能做简要的介绍, 本次仿真主要构成:主机U1-MASTER、从机U2-SLAVE、以及LED显示部分(第一部分显示主机接收到的信息、第二部分显示从机接收到的信号); 实

    2024年01月15日
    浏览(75)
  • Proteus仿真实验---USART串口通信实验

    一、概要         本次实验使用51单片机的串口与Proteus的Virtual Terminal(虚拟终端)进行一个简单的串口通信,实现的功能是让Virtual Terminal通过串口向单片机发送数据,单片机接收到数据后经串口将数据发送到Virtual Terminal上显示。         Virtual Terminal:如下图,在使用前根

    2023年04月09日
    浏览(35)
  • 【51单片机系列】proteus仿真单片机的串口通信

    本文参考:https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据,并将接收的数据发送出去,利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口,利用软件【串口助手】向单片机发送数据。 proteus仿真

    2024年01月17日
    浏览(53)
  • 0077-基于单片机的串口通信(1主3从)仿真设计

    1、采用51单片机作为主控芯片; 2、发送机通过开关选通向3个接收机中的1个进行串口发送; 3、发送机采用按键输入发送内容; 4、接收机采用数码管显示接受内容,LED指示连接状态; 采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代

    2024年02月19日
    浏览(37)
  • 132、仿真-基于51单片机主从串口通信家用防盗报警器设计(程序+Proteus仿真+流程图等)

    毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、设计功能 二、Proteus仿真图​编辑 三、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包