keil ARM与虚拟串口联调设置及解决办法

合集下载

使用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和Keil联调设置方法常用的有两种方法 一keil c与proteus的离线

Proteus和Keil联调设置方法常用的有两种方法 一keil c与proteus的离线

Proteus和Keil联调设置方法常用的有两种方法一keil c与proteus的离线联合使用1)先通过keil c51编辑,修改,编译源程序并生成HEX等单片能识别的文件,运行proteus 将HEX文件与原理图中的MCU进行绑定即可2)不论是离线还是在线方式的联合使用HEX文件是必不可少的,如果找不到HEX文件这不是软件出错,而是没有进行正确的设置进人KEIL开发环境打开一个工程文件,在选中“target1"的情况下选择project--->options for target "target1" 选择”output"选项卡在“create HEX file 前的方框里打钩,保存即可二KEIL C51与PROTEUS 7.0的联合仿真调试1)确保计、算机上安装有TCP/IP协议2)下这个软件proteus vsm a GDI Driver 就是vdmagdi.exe,装了后的变化是在KEIL文件夹下的TOOLS.INI文件中的[c51]字段的最后多了两行就是tdrv5=binvdm51.dll和book10=hlplvdmagd用于两软件的联接和帮助文档3)进入KEIL的开发环境建立一个工程文件在先中“TARGET"的情况下选择project-->options for target "target'4)在"debug"选项卡中选择左边的“use“,在下拉框中选”proteus vsm simulator",再点击"Setting"设置通信接口,在Host后面添上"127.0.0.1",如果你是用的不是同一台电脑,在这里添上另一台电脑的IP地址(另一台电脑安装Proteus).5)打开proteus lsls 在菜单栏中选择“debug-->use remote debug monitor"选中该项.6)注意,一定要把keil的工程和Proteus的文件放到同一个目录下(这里所说的Keil的工程指工程的目录,即Proteus的工程文件要和Keil工程的文件夹在同一层目录下).(注明:以上参考自/lihaoy/blog, 谢谢原文作者^_^)附:Proteus 7.2和Keil C51 V8.08 uvision 3的完整安装1.安装Proteus Version 7.2beta SETUP2.安装Proteus Update72SP2升级到SP2版本2.包括安装破解文件Labcenter_LICENCE.lxk3.安装补丁文件patch,注意里面在说要选择目录的时候要选择相应的目录4.安装汉化菜单:Proteus 7.01 SP2 ARES的汉化菜单放到……Program Files\Labcenter Electronics\Proteus 7 Professional\BIN目录下。

虚拟串口设置方法

虚拟串口设置方法

1、打开软件界面选择串口
2、点击“ADD IP”按钮,添加被访问设备IP地址及端口
3、添加IP地址及访问端口。

IP地址、端口必须与SNMP卡上本地IP、本地端口设置一致
HOST:IP地址 TCPPort:端口
4、IP地址、端口添加完毕后,点击OK按钮,返回主页面。

选择列表框中新添加的IP地址,
点击“PORT SETTINGS”按钮进行端口设置
5、将复选设置中的“TimeOut Reconnect”“Server Reconnect”“Raw Mode”选中。

点击“OK”按钮,返回主页面。

6、点击“SAVE”按钮,保存设置。

点击“Close”按钮,退出程序。

重新启动计算机,
以保证所有更改生效。

7、打开系统监控软件,点击端口设置选项
8、选择在虚拟串口中设置的虚拟串口编号,点击"OK",退出设置。

9、成功连接后,系统将提示“successful redirect com3 to 99.19.73.167:6000”。

KEIL5与Proteus联调设置

KEIL5与Proteus联调设置
配置完成
配置完成,即可进行KEIL5 Proteus联调。
请注意甄别内容中的联系方式诱导购买等信息谨防诈骗
KEIL5与Proteus联调设置
安装插件
安装KEIL Proteus联调插件(在KEIL文件目录下)。
下载地址:链接:link.
配置
1.将插件里的vdm51.dll复制到Proteus 8 Professional\MODELS与keil/C51/bin下。
2.然后再KEIL安装目录下找到TOOLS.INI。
3. 在C51下加TDRV13=BIN\VDM51.DLL (“Proteus VSM Monitor-51 Driver”)
(修改TDRV编号,与前面不同即可)
联调步骤
1.打开Proteus,点击【调试】,勾选【启动远程编译监视器】。
2.打开KEIL,点击【Option for Target 】;
3.点击【Output】选项,勾选【create hex file】;
4.点击【Debug】选项,勾选使用【Proteus VSM Monitor-51 Driver】;
5.点击【Settings】,Host设置为127.0.0.1,Prot设置为8000,点击OK。
6.将KEIL生成的hxe文件下载到teus中。

keil printf 调用的串口

keil printf 调用的串口

keil printf 调用的串口
Keil printf调用的串口
Keil是一款很受欢迎的嵌入式开发工具,其中有一个很重要的功能就是能够通过外部串口通信来调试程序。

本文就介绍如何使用Keil printf函数来调用串口来实现调试功能。

1、首先,要在Keil中使用printf函数,必须安装两个文件:stdio.h 和 stdarg.h,它们可以在Keil的库中找到,需要注意的是,stdio.h中的文件要放在stdarg.h的下面。

2、编辑printf函数,在Keil新建一个文件,并将其命名为printf.c,并将其完成并编译,编译完成后可以正确的运行printf 函数:
/* 重定义printf函数 */
int fputc (int ch, FILE *f)
{
SendData(ch); // SendData为串口发送函数,由用户自定义
return ch;
}
/* 重定义getchar函数 */
int fgetc (FILE *f)
{
return 0;
}
3、在Keil的Project Workspace中的“Target”节点的“Output”中,勾上“use MicroLIB”,完成以上步骤后,就可以在程序中使用printf函数来调用外部串口了。

以上就是Keil中如何使用printf函数来调用外部串口的方法,Keil的printf函数可以使得调试程序非常方便,包括调试变量和输出信息等,您可以根据自己的实际情况进行适当的调整,而不必过多的花费时间,达到更快的调试效果。

Keil软件仿真调试

Keil软件仿真调试

Keil软件仿真调试简介Keil软件是ARM公司推出的一款集成开发环境(IDE),提供了编译器、调试器、仿真器、代码库和辅助工具等多种功能。

其中仿真器(Simulator)是Keil软件的主要功能之一,可以方便地对嵌入式系统进行模拟测试和调试,以达到开发的目的。

在Keil软件中,仿真调试(Simulation Debugging)是一种常见的调试方式,其主要思想是通过用实际输入数据替换程序输入参数,执行程序并输出实际的运行结果,与预期结果进行比较,进而找到程序的错误以及解决问题。

仿真调试的原理当我们进行仿真调试时,Keil软件会将程序文件加载到仿真器中进行模拟的运行,仿真器负责模拟CPU、中断、时钟、IO等外设的运行状态,使得程序在仿真环境中能够运行。

仿真调试的实现主要有两种方式:单步调试和断点调试。

单步调试单步调试(Step-by-Step Debugging)指的是在程序运行过程中,每执行一行指令都会停止,通过查看每个变量的值来进行调试的过程。

单步调试可以帮助程序员快速定位程序中可能的问题,并及时进行修改。

在Keil软件中,单步调试可以通过F10和F11快捷键来实现。

断点调试断点调试(Breakpoint Debugging)指的是在程序中设置停止执行的断点,当程序执行到断点处时,程序就会停止运行,执行者就可以检查变量值、栈信息等各种环境,找到程序的问题。

在Keil软件中,断点调试可以通过F9键来设置。

常用仿真调试功能Keil软件提供了众多仿真调试功能,常用的功能包括:数据查看窗口在Keil软件中,可通过打开数据查看窗口(Watch Window)来查看变量值的对应信息。

数据查看窗口主要由寄存器、内存和变量组成,可以通过添加、删除变量、地址以及其他类型来满足用户不同的需求。

显示ASM窗口ASM窗口是一个汇编指令窗口,可以将C语言源程序翻译成相应的汇编指令。

采用汇编语言的程序员可以在此窗口中检查程序的底层代码实现、地址分配等信息。

keilc51串口仿真

keilc51串口仿真

Keil 的串口仿真————怎么用?Keil 的串口仿真————怎么用?C51软件仿真有个串口仿真,试了一下不太成功。

在调试窗口中的SBUF处输入值0x68,但仿真时就是进不了'*'号那行.观察rec_buf的变化,发现其值没有改变.不知为何?void com_rcv(void) interrupt 4 using 2{if ( RI != 1 ){return;}RI = 0;rec_buf = SBUF;if ( flag == 0 ) //flag初始化为0,仿真时本句可以进入{if ( rec_buf == 0x68 ){check_sum = rec_buf;//****************}else{return;}}}2楼:>>参与讨论作者:computer00于2006-8-2 9:37:00 发布:keil有直接输入串口数据的地方就是工具栏那本字典样的东东.你直接在里面用键盘敲 h 键就可以了(它的ASCII码就是0x68).你也可以把数据发到串口,然后它就会在这显示了。

3楼:>>参与讨论作者:ye83241905于2006-8-2 9:54:00 发布:楼上说的也是调试工具?麻烦说得详细些.具体是那个工具,这个也可以调试串口?4楼:>>参与讨论作者:computer00于2006-8-2 10:19:00 发布:我说的是keil自带的.参考: /more.asp?NAME=computer00&id=95015楼:>>参与讨论作者:ye83241905于2006-8-2 11:30:00 发布:serial windows是串口调试工具吧?谢谢,serial windows这个可以输入串口数据.只是还想问问Peripherals--serial这个窗口如何用呢,通过它可以进入中断,就是数据不能输入,不知什么地方有问题?6楼:>>参与讨论作者:开发过程于2006-8-2 14:58:00 发布:呵那本字典?7楼:>>参与讨论作者:computer00于2006-8-2 15:35:00 发布:Peripherals--serial那个只能看到你程序写到SBUF的东东而你往里面写个值,并不会导致串口接收到数据.serial windows,你可以按住alt键,然后再用小键盘直接输入十进制数.例如你上面的0x68,你只要按住alt键,再用小键盘输入104,放开alt,就OK了~~~~~~~~~~8楼:>>参与讨论作者:ye83241905于2006-8-2 16:22:00 发布:原来只是一个观察窗口?谢谢,楼上.原来它只用作观察SBUF寄存器的状态.不过若在窗口中改变SBUF的值,在MEMORY Windows中观察发现相应地址的状态也改变,就是不作为串口收到的数据用,有些容易迷惑人.9楼:>>参与讨论作者:rlstudio于2006-8-4 22:38:00 发布:能不能仿真与PC的通信啊?好像有个仿真器的吧?不知怎样用,或者与一些串口调试助手之类的结合使用。

keil调试 汇编语言

keil调试 汇编语言

keil调试汇编语言Keil是一款广泛用于嵌入式系统开发的集成开发环境(IDE),它支持多种编程语言,包括C语言和汇编语言。

在Keil中进行汇编语言的调试需要编写汇编代码以及在IDE中配置相关设置,接下来我将详细介绍如何在Keil中调试汇编语言。

首先,要在Keil中调试汇编语言,我们需要创建一个新的Keil 项目或者打开一个已有的项目。

在创建新项目或打开项目后,我们可以在项目中添加一个汇编文件,用于编写我们的汇编代码。

在Keil中,汇编文件的后缀通常为.asm,我们可以通过右键点击项目中的文件夹,选择添加→新建文件(或者通过快捷键Ctrl+N)来创建一个新的汇编文件。

创建好汇编文件后,我们可以在文件中编写我们的汇编代码。

在编写汇编代码时,我们需要注意汇编语言的语法和指令格式。

汇编语言的语法因不同的体系结构而异,比如x86汇编语言与ARM汇编语言的语法就有所不同。

因此,在编写汇编代码前,我们需要先了解目标平台的体系结构和相应的汇编语法标准。

在汇编代码中,我们可以使用一系列的汇编指令来进行数据的移动、运算和控制流的操作。

例如,通过MOV指令可以实现数据的移动,通过ADD指令可以实现数据的加法运算,通过CMP指令可以实现数据的比较等。

汇编指令的具体使用方法和参数取决于具体的体系结构和处理器指令集。

编写完汇编代码后,我们需要在Keil中配置一些相关设置,以便能够进行调试。

首先,我们需要在项目属性中设置汇编语言的编译器和链接器选项。

在Keil的项目目录视图中,右键点击项目名称,选择选项,并在弹出的对话框中选择正确的编译器和链接器。

其次,我们需要在Keil的启动文件(startup file)中设置相应的中断向量表和启动代码。

启动文件位于项目文件夹的"startup"子文件夹中,可以通过将文件拖放到Keil编辑器中打开。

在启动文件中,我们需要找到中断向量表和启动代码的位置,并将其修改为适用于我们的汇编代码的中断向量表和启动代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Keil ARM 与虚拟串口联调设置第一步:创建虚拟串口
使用工具:Configure Virtual Serial Port Driver
记住自己创建的两个虚拟串口
第二步:创建debug.ini 命令执行文件
Mode COM2 9600,0,8,1
assign com2 <S2IN> S2OUT
注意:1:串口选择与虚拟串口相同
2:串口工作波特率,校验方式,数据长度,停止位
assign com2 <输入寄存器> 输出寄存器
串口工作方式对应
9600,0,8,1
9600,1,8,1
9600,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,1
assign com4 <S2IN> S2OUT
中的串口选择错误,要确保与虚拟串口一致。

相关文档
最新文档