KEIL中如何用虚拟串口调试串口程序
使用Keil软件模拟调试单片机串行口

使用Keil软件模拟调试单片机串行口单片机串行口是单片机中很常见的接口之一,常用于与外界通讯,如与PC机通讯,接收或发送数据等。
Keil软件可以帮助我们模拟及调试单片机串行口,下面是详细介绍。
一、Keil软件简介Keil是一款强大的单片机编程软件,具有模拟器和仿真器。
其可支持多种嵌入式系统和多种编译器。
同时Keil具有标准C 编译器,专门用于单片机编程,而且具有与某些模拟器和编译器的集成,可提供完整的嵌入式开发环境。
二、使用Keil软件模拟1. 连接软件与硬件在开始模拟之前,需要将单片机与电脑通过串口连接好。
打开“Options for Target”对话框,选择“Debug”选项卡,选择正确的COM 端口,设置存根速度,完成调试设置。
2. 添加串行口文件在Keil软件中打开设计文件,键入“#include <reg52.h>”来添加注册头文件,其中包含了需要使用串口的相关寄存器位。
利用如下代码,可以对串行口的各项参数进行设置,例如波特率、校验位等等。
void init(){SCON = 0X50; //使串口工作在方式1,即8位数据,可变波特率TMOD |= 0X20; //TMOD的高4位设为0010,使Timer1工作在方式2TH1 = 0XF3; //波特率设为2400bpsTL1 = 0XF3;TR1 = 1; //启动Timer1ES = 1; //开启串口中断EA = 1; //打开总中断}3. 编写数据收发代码在调用串口的过程中,我们往往需要使用到接收和发送两个函数。
在接收方面,我们需要设置好接收中断模式以及缓冲区的异步处理。
编写简单的数据接收收发代码如下:void send_data(unsigned char dat){SBUF = sdat; //将数据传输到SBUF当中while(!TI); //等待发送完成TI = 0; //完成发送}unsigned char receive_data(){while(!RI); //等待接收完成RI = 0; // 完成接收return SBUF; // 返回接收缓冲区}4. 最后进行模拟完成串行口配置和数据处理之后,就可以开始模拟调试了。
虚拟串口使用说明

用proteus里的单片机跟pc的串口调试工具进行串口仿真虚拟串口使用说明打开虚拟串口的文件夹,可以看见如下两个文件,一个是破解用的,一个是安装用的。
双击安装图标开始安装。
选择同意,一路NEXT即可。
安装后再将破解用的文件粘贴到C:\Program Files\Eltima Software\VSPD XP 5.1目录下,覆盖原来的文件即可。
在桌面就可以看到快捷方式。
双击快捷方式后你会看到如下画面:上面为你实际的物理串行口,下面是虚拟的物理串行口。
下面我们来增加一对虚拟串行口。
因为一般的电脑最多为两个串行口,在这个画面上,我们设置first为com3,second为com4,点击add pair就可以增加一对虚拟串口(如下图所示)。
这两对端口是通过这个软件物理连接的,并且是rs232电平连接。
这样我们就完成里串口的设置,可以把此软件关闭,这两个端口将会一直存在于你的电脑中,下次直接使用就可以了。
Protus中的串口设置仿真电气原理图请打开本例的仿真文件:下面我们对串口进行设置和邦定:在proteus右键单击上面的图选定,然后左键单击此元件打开它的属性对话框。
如下图所示:设置蓝色框内的参数,为你实际的参数,其中红色圈内设置为你要邦定的串口,本例邦定为com4,必须为com3和com4中的一个。
下面就是对串口调试工具的设置了,设置如下:因本例proteus用了com3,那么串口调试工具这里就要邦定为com4了,并且设置为16进制发送和显示,那么这样一切ok,开始吧。
点击proteus的播放键,切换到串口调试工具,哈哈受到数据了。
然后你再发送一些数据给单片机看看,哈哈,是不是很棒呢。
Keil软件串口调试实用技巧

Keil软件的串口调试技巧[ 来源:| 更新日期:2007-6-4 22:47:08 | 评论0 条| 我要投稿]引言在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。
通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。
RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。
在单片机编程中,串口占了很重要的地位。
传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。
在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。
使用硬件仿真器的确是很有效的方法,但是也有一些缺点:◆很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。
◆对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。
◆有时由于设备内部结构空间的限制,仿真头不方便接入。
◆有的仿真器属于简单的在线仿真型,仿真时有很多限制。
例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。
1 调试前的准备工作下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。
使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。
所需的只是:①硬件。
1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。
②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。
如果没有合适的串口调试软件,则可使用笔者编写的一个免费的串口小工具TurboCom。
keil ARM与虚拟串口联调设置及解决办法

Keil ARM 与虚拟串口联调设置第一步:创建虚拟串口使用工具:Configure Virtual Serial Port Driver记住自己创建的两个虚拟串口第二步:创建debug.ini 命令执行文件Mode COM2 9600,0,8,1assign com2 <S2IN> S2OUT注意:1:串口选择与虚拟串口相同2:串口工作波特率,校验方式,数据长度,停止位assign com2 <输入寄存器> 输出寄存器串口工作方式对应9600,0,8,19600,1,8,19600,2,8,1第三步:环境设置第四步:全部编译进入调试:开启仿真,打开串口调试助手。
虚拟串口驱动显示工作方式其他:命令行也可以直接写命令在命令栏中,操作如下:点击进入仿真模式,在命令行将debug.ini命令输入错误解决办法:*** error 30, line 2: undefined name of virtual register问题描述:虚拟寄存器没有定义问题原因:命令assign com2 <S2IN> S2OUT中<S2IN> S2OUT是没有定义的。
可以通过dir vtreg命令查看可以寄存器对将对应串口寄存器写入对应命令中*** error 65: access violation at 0x40021000 : no 'read' permission驱动没有调用正确*** error 127, line 2: Com channel not opened, use MODE command first 命令:Mode COM4 9600,0,8,1assign com4 <S2IN> S2OUT中的串口选择错误,要确保与虚拟串口一致。
KEIL开发环境与虚拟串口屏绑定调试V1.0

Keil开发环境与虚拟串口屏绑定调试版本:V1.0Keil开发环境与虚拟串口屏绑定调试1.1 概述在实际调试过程中,若我们手头上没有硬件实物或每次修改工程图片又得重新下载而浪费时间,此时我们就可以直接将Keil开发环境与虚拟串口屏连接起来。
用户使用Keil程序Debug仿真时,虚拟串口屏显示也会跟着一起变化。
由于虚拟串口屏跟真实的串口屏功能一模一样,这样的调试模式无异给开发者带了莫大的方便,如图0.1所示。
图0.1 Keil开发环境与虚拟串口屏绑定调试1.2 操作流程任何初学者,只要按照以下流程操作,即可快速完成Keil与虚拟串口屏的绑定。
1.2.1 软件工具准备1.虚拟串口VSPXD软件,在我司官网进行下载。
2.VisualTFT软件。
3.Keil开发软件。
1.2.2 安装虚拟串口VSPXD软件首先,我们必须现在电脑上安装1对虚拟串口,通过这对虚拟串口连接Keil和虚拟串口屏。
若您电脑上已经安装了虚拟串口VSPXD,此章节可以跳过。
安装步骤如下:1.解压“虚拟串口VSPXD软件”,运行可执行文件“VSPDXP.exe”,如图0.2所示。
图0.2 VSPXD安装程序2.选择默认安装路径,点击下一步,直至安装完成,如图0.3所示。
打开桌面虚拟串口软件“VSPD XP 5”,如图0.5所示。
图0.5 打开VSPD软件physical ports目录下表示当前电脑物理硬件串口,物理硬件串口无法与虚拟串口通道进行匹配。
建立并绑定1对虚拟串口。
如图0.6所示,在First菜单中选择COM3,Second 选择COM4,然后点击Add pair,此时Virtual ports目录下会出现这1对被绑定的串口,如图0.6图0.7所示。
图0.7 虚拟串口对生成如何删除虚拟串口通道。
若需要删除虚拟串口,只需选中对应虚拟串口,然后点击Delete pari,即可删除,如所示。
这一步暂时不需要操作。
图0.8 删除虚拟串口4.查看虚拟串口。
介绍利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法

介绍利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。
通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。
RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。
在单片机编程中,串口占了很重要的地位。
传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。
在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。
使用硬件仿真器的确是很有效的方法,但是也有一些缺点:很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。
对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。
有时由于设备内部结构空间的限制,仿真头不方便接入。
有的仿真器属于简单的在线仿真型,仿真时有很多限制。
例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。
1、调试前的准备工作下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。
使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。
所需的只是:①硬件。
1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。
②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。
如果没有合适的串口调试软件,则可使。
如何使用串口调试助手Keil软件仿真的串口调试技巧

如何使用串口调试助手Keil软件仿真的串口调试技巧在嵌入式系统开发中,串口调试是一项非常重要的技术。
Keil软件是一个广泛应用于嵌入式系统开发的软件平台,通过其内置的串口调试助手,我们可以方便地进行仿真的串口调试。
本文将介绍如何使用串口调试助手Keil软件仿真的串口调试技巧。
1. 了解串口基础知识在开始使用串口调试助手之前,首先需要了解一些串口的基础知识。
串口通信是一种通过串行传输数据的通信方式,常用的串口通信标准有RS232、RS485等。
了解波特率、数据位、停止位、校验位等串口通信参数的含义和选择是必要的。
2. 配置串口参数打开Keil软件后,选择对应的工程文件,并进入工程配置页面。
在这里,我们可以找到串口调试助手的配置选项。
根据实际需求,设置串口通信的参数,如波特率、数据位、停止位、校验位等。
确保与目标设备的串口参数一致,才能正常进行串口通信。
3. 编写串口发送与接收代码在代码中,我们需要编写串口发送和接收的相关代码。
通过Keil软件提供的API函数,我们可以方便地实现数据的发送和接收。
在发送数据时,需要将数据写入到相应的寄存器,以便传输到串口。
而在接收数据时,需要从寄存器中读取数据。
通过合理设计代码,可以实现稳定可靠的串口通信。
4. 仿真运行程序完成代码编写后,我们可以进行仿真运行,以验证串口调试功能的正确性。
在Keil软件中,可以选择进行单步调试、断点调试或连续运行调试。
通过监视寄存器的值变化、观察串口发送与接收的数据情况,可以帮助我们进行串口调试。
5. 使用串口调试助手测试在完成仿真运行后,我们可以使用串口调试助手进行测试。
打开串口调试助手,并选择与目标设备串口参数一致的配置。
点击打开串口,即可开始接收串口发送的数据。
通过观察串口调试助手输出的数据,可以验证串口通信的正确性。
6. 调试技巧与注意事项在使用串口调试助手Keil软件进行串口调试时,还需要注意一些调试技巧与注意事项。
首先,确保串口连接正确可靠,避免松动或接触不良导致数据传输错误。
keil MDK 中使用虚拟串口调试串口

keil MDK 中使用虚拟串口调试串口看了很多的文章,写的都很简单(其实也很简单:))。
给出个详细一点的教程。
1. 利用VSPD将PC上的两个虚拟串口连接起来。
如图我将COM2 和COM3连接起来。
点击Addr pair。
2. 可以看到Virtual ports上将两个虚拟串口连接到了一起了。
3.虚拟串口准备就绪了。
先将直接输入命令的方式来调试。
我们打开KEIL MDK的,设置成仿真的模式。
点DEBUG.在COMMAND串口输入:MODE COM2 38400, 0, 8, 1 说明:MODE命令的作用是设置被绑定计算机串口的参数。
基本使用方式为:MODE COMx baudrate, parity, databits, stopbits其中:COMx(x = 1,2,…)代表计算机的串口号;baudrate代表串口的波特率;parity代表校验方式;databits代表数据位长度;stopbits代表停止位长度。
例如:MODE COM1 9600, n, 8, 1设置串口1。
波特率为9 600,无校验位,8位数据,1位停止位。
MODE COM2 19200, 1, 8, 1设置串口2。
波特率为19 200,奇校验,8位数据,1位停止位。
4、点回车后,再输入ASSIGN COM2 <S1IN> S1OUT 说明:COMx代表计算机的串口,可以是COM1、COM2、COM3或其他;inreg和outreg代表单片机的串口。
对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。
例如:ASSIGN COM1 < SIN > SOUT将计算机的串口1绑定到单片机的串口(针对只有一个串口的单片机)。
ASSIGN COM2 < SIN > SOUT将计算机的串口2绑定到单片机的串口0(针对有多个串口的单片机,注意串口号的位置)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
KEIL中如何用虚拟串口调试串口程序
发表于2008/5/7 15:30:22
以前没接触过串口,一直都以为串口很复杂。
最近在做一个新项目,用单片机控制GSM模块。
单片机和GSM模块接口就是串口。
调试完后觉得串口其实很简单。
“不过如此”。
这可能是工程师做完一个项目后的共同心态吧。
下面详细介绍下如何用虚拟串口调试串口发送接收程序。
需要用到三个软件:KEIL,VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件),串口调试助手。
1、首先在KEIL里编译写好的程序。
2、打开VSPD,界面如下图所示:
左边栏最上面的是电脑自带的物理串口。
点右边的add pair,可以添加成对的串口。
一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。
3、接下来的一步很关键。
把KEIL和虚拟出来的串口绑定。
现在把COM3和KEIL 绑定。
在KEIL中进入DEBUG模式。
在最下面的COMMAND命令行,输入MODE COM3 4800,0,8,1(设置串口3的波特率、奇偶校验位、数据位、停止位,打开COM3串口,注意设置的波特率和程序里设置的波特率应该一样)ASSIGN COM3 <SIN> SOUT(把单片机的串口和COM3绑定到一起。
因为我用的单片机是AT892051,只有一个串口,所以用SIN,SOUT,如果单片机有几个串口,可以选择S0IN,S0OUT,S1IN,S1OUT。
)
4、打开串口调试助手
可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率4800,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。
打开COM4。
现在就可以开始调试串口发送接收程序了。
可以通过KEIL发送数据,在串口调试助手中就可以显示出来。
也可以通过串口调试助手发送数据,在KEIL中接收。
这种方法的好处是不用硬件就可以调试。
这是网上一篇文章介绍的方法,联系我实际的使用做了整理。
有用的着的人就不用继续摸索了。