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编辑器中打开。

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

如何使用串口调试助手Keil软件仿真的串口调试技巧

如何使用串口调试助手Keil软件仿真的串口调试技巧

如何使用串口调试助手Keil软件仿真的串口调试技巧在嵌入式系统开发中,串口调试是一项非常重要的技术。

Keil软件是一个广泛应用于嵌入式系统开发的软件平台,通过其内置的串口调试助手,我们可以方便地进行仿真的串口调试。

本文将介绍如何使用串口调试助手Keil软件仿真的串口调试技巧。

1. 了解串口基础知识在开始使用串口调试助手之前,首先需要了解一些串口的基础知识。

串口通信是一种通过串行传输数据的通信方式,常用的串口通信标准有RS232、RS485等。

了解波特率、数据位、停止位、校验位等串口通信参数的含义和选择是必要的。

2. 配置串口参数打开Keil软件后,选择对应的工程文件,并进入工程配置页面。

在这里,我们可以找到串口调试助手的配置选项。

根据实际需求,设置串口通信的参数,如波特率、数据位、停止位、校验位等。

确保与目标设备的串口参数一致,才能正常进行串口通信。

3. 编写串口发送与接收代码在代码中,我们需要编写串口发送和接收的相关代码。

通过Keil软件提供的API函数,我们可以方便地实现数据的发送和接收。

在发送数据时,需要将数据写入到相应的寄存器,以便传输到串口。

而在接收数据时,需要从寄存器中读取数据。

通过合理设计代码,可以实现稳定可靠的串口通信。

4. 仿真运行程序完成代码编写后,我们可以进行仿真运行,以验证串口调试功能的正确性。

在Keil软件中,可以选择进行单步调试、断点调试或连续运行调试。

通过监视寄存器的值变化、观察串口发送与接收的数据情况,可以帮助我们进行串口调试。

5. 使用串口调试助手测试在完成仿真运行后,我们可以使用串口调试助手进行测试。

打开串口调试助手,并选择与目标设备串口参数一致的配置。

点击打开串口,即可开始接收串口发送的数据。

通过观察串口调试助手输出的数据,可以验证串口通信的正确性。

6. 调试技巧与注意事项在使用串口调试助手Keil软件进行串口调试时,还需要注意一些调试技巧与注意事项。

首先,确保串口连接正确可靠,避免松动或接触不良导致数据传输错误。

keil、protues安装 protues与kiel联调方法(自己成功安装使用了)

keil、protues安装  protues与kiel联调方法(自己成功安装使用了)

一.KEIL安装注册方法:如图首先、安装c51v805 中文版.exe双击后安下图流程。

以上步骤KEIL软件安装完成!下面步骤是注册!首先、点击打开后按图操作!反回到桌面打开软件二. Proteus 7.5 安装再安装vdmagdi.exe 默认三.protues与kiel联调方法1。

把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\目录下的VDM51.dll文件复制到 C:\Keil\C51\BIN文件夹下。

(目录名都是默认的,你可以根据你实际安装的目录进行复制。

) 可能会没有这个VDM51.dll 楼主需要网上下一个,再放到BIN 里面2。

用记事本(其它的编辑软件也可以,如Ultra Edit)打开Keil 根目录下的 TOOLS.INI 文件,在[C51] 栏目下加入 TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver" ) ,其中“TDRV3” 中的 “3”要根据实际情况写,不要和原来的重复。

(我的这个文件中已经有了从TDRV1到TDRV4, 所以我用的是TDRV5)3。

建立KEIL工程后,单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,点击“Debug”按钮,在出现的对话框里在右栏最上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。

并且还要点击一下“Use”前面表明选中的小圆点。

这样就连上了首先,你要下载安装这两个软件了。

Proteus可以到官方网站(/)下载试用板(试用版无存盘功能),最新版本是6.5。

Keil也可以到它的官方网站(/)去下载它的demo板(有2K代码限制),最新的版本是7.20。

下载后就可以安装了。

MDK 下使用 Serial Windows 调试串口教程

MDK 下使用 Serial Windows 调试串口教程

MDK 下使用 Serial Windows 调试串口教程第一步: 确定目标1: 有的时候我们会有这样的想法: 我们学习 STM32 的时候难道一定需要有硬件开发板才能调试和学习程序么?这里告诉大家一个好消息, 学习 STM32 可以完整的在软件上仿真, 那就是强大的RealView MDK.在这个教程中我们教大家怎么使用串口模拟窗口来调试我们的程序.2: 目标确定:调试发送程序: 输出字符串到 Serial Windows调试接收程序: 敲击键盘上的按键, 窗口接收到数据后通过串口输出到 SerialWindows第二步: 创建一个工程你可以下载我给大家调试好的工程代码.STM32_USART_Pol.rar (220.95 KB)打开工程, 我们可以看到我们的工程包括4个文件:STM3210x.S 启动代码STM32_Init.C 初始化代码Retarget.C 接口函数Usart.C 主函数下面给大家介绍下我们的代码:printf 函数: 将字符串通过串口输出getchar 函数: 串口接收一个字符和这两个函数有关的函数移植就是下面三个函数int fputc(int ch, FILE *f) {return (SendChar(ch));}int fgetc(FILE *f) {return (SendChar(GetKey()));}void _ttywrch(int ch) {SendChar (ch);}最后移植两个底层函数int SendChar (int ch) {while (!(USART1->SR & USART_FLAG_TXE));USART1->DR = (ch & 0x1FF);return (ch);}int GetKey (void) {while (!(USART1->SR & USART_FLAG_RXNE));return ((int)(USART1->DR & 0x1FF));}这几个函数移植好之后我们就可以做我们的调试试验了.第三步: MDK 仿真调试编译完成, 进入软件仿真调试.打开 View -> Serial Window -> USART #1 对话框全速运行程序, 按下键盘上的按键后我们会看到下面的界面.。

KEIL中用虚拟串口调试串口程序

KEIL中用虚拟串口调试串口程序

虚拟出两个串口,并且已经连接在一起Stime=0x00 回车这些调试命令如何使用,比较好找,但是,这三条一条都不能少。

开始时,缺少最后一条命令,就无法运行。

Mode用于设置端口Assign用于分配端口输入输出Stime用于设置是否需要考虑内部计数频率。

0时表示直接以mode设置为准,此时不必计算内部的计数而产生的波特率;1时则考虑内部产生的频率而发生的波特率,更合适实际模拟调试,能够检验定时器设置是否准确。

3、现在可以开始运行你的项目了;4、打开串口调试工具,注意设置,端口号要设置为一对串口中的另外一个,本例中为COM3,另外,要确保发送数据的格式,需是16进制。

设置为波特率9600,无校验位、8位数据位,1位停止位(和COM2、程序里的设置一样)。

可以通过KEIL发送数据,在串口调试助手中就可以显示出来。

也可以通过串口调试助手发送数据,在KEIL中接收。

示例程序:#include "stc15.h" //包含单片机寄存器定义文件unsigned char xdata rxbuffer[21]={0}; //在外部RAM区定义20个单元unsigned char num; //计数变量unsigned char checksum; //校验和变量void main (void) //主程序{num=0;checksum=0;SCON=0x50; //置串行口工作方式1(SM0=0,SM1=1),允许接收(REN=1)AUXR=0x0; //选择定时器1作为波特率发生器// TMOD=0x0; //定时器1为工作方式0// TH1=0xff; //产生9600bps的时间常数// TL1=0xe8;// 注意,该虚拟串口方式无法使用STC定时器工作方式0的波特率发生器模式,只能使用传统的8051模式TMOD=0x20; //定时器1为工作方式1TH1=0xfd; //产生9600bps的时间常数TL1=0xfd;TR1=1; //启动定时器1ES=1; //串行口开中断EA=1; //开中断while(1); //等待中断}void UART_ISR(void) interrupt 4 //中断号4是串行口1中断{unsigned char rxchecksum=0;if(RI){RI=0;rxbuffer[num]=SBUF;if(num<21){if(num<20)checksum^=rxbuffer[num]; //计算校验和num++; //修改计数变量值}if(num==21) //应答信号不是0,重新发送{rxchecksum=rxbuffer[num-1]; //设置发送数据缓冲区指针if (rxchecksum==checksum){SBUF=0x00; //发送第一个数据}else{SBUF=0xff; //发送第一个数据}num=0; //为下次接收做准备checksum=0;}}else{TI = 0; //清发送中断标志}}。

Keil仿真的串口仿真的调试技巧

Keil仿真的串口仿真的调试技巧

引言在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。

通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。

RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。

在单片机编程中,串口占了很重要的地位。

传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。

在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。

使用硬件仿真器的确是很有效的方法,但是也有一些缺点:◆很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。

◆对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。

◆有时由于设备内部结构空间的限制,仿真头不方便接入。

◆有的仿真器属于简单的在线仿真型,仿真时有很多限制。

例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。

1 调试前的准备工作下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。

使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。

所需的只是:①硬件。

1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。

②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。

如果没有合适的串口调试软件,则可使用笔者编写的一个免费的串口小工具TurboCom。

除了与其他软件一样的数据收发功能外,它还有定时轮流发送自定义数据帧和自动应答(接收到指定数据帧后,自动返回相应的数据帧)这两个很有用的功能,特别适合于老化测试。

keil里串口接收函数 -回复

keil里串口接收函数 -回复

keil里串口接收函数-回复Keil中的串口接收函数是嵌入式系统开发中非常重要的一部分。

串口通信是一种常见的数据传输方式,它将数据以异步的方式通过串行线路进行传输。

在嵌入式系统中,我们经常需要使用串口与外部设备进行通信,比如与传感器、外部存储器或其他控制器进行数据交换。

在这篇文章中,我们将一步一步来介绍Keil中的串口接收函数的使用。

首先,我们需要了解在Keil中如何配置串口。

Keil提供了一组函数来配置和控制串口,其中最常用的是UART_Init()和UART_Config()函数。

这两个函数分别用于初始化和配置串口的基本参数,比如波特率、数据位数、停止位和奇偶校验位等。

我们可以根据需要来调整这些参数,以实现不同的串口通信需求。

接下来,我们需要创建一个中断处理函数,用于处理串口接收中断。

在Keil 中,可以使用__irq关键字来定义一个中断处理函数。

具体的中断处理函数的命名规则根据我们所使用的具体芯片而定,一般以UARTx_IRQHandler()的格式命名,其中x表示串口的编号。

在中断处理函数中,我们需要使用UART_Receive()函数来读取接收缓冲区中的数据。

在编写串口接收函数之前,我们需要先开启串口接收中断。

这可以通过调用UART_ITConfig()函数来实现。

该函数需要传入两个参数,第一个参数是串口编号,第二个参数是中断类型(接收中断或发送中断)。

我们在本文中主要讨论串口接收,因此中断类型应选择接收中断。

接收到数据后,我们可以通过以下步骤来读取和处理数据:1. 在串口接收中断处理函数中,首先需要判断接收缓冲区是否为空。

这可以使用UART_GetITStatus()函数来实现。

如果接收缓冲区为空,表示没有新的数据到达,我们可以直接返回。

2. 如果接收缓冲区不为空,则使用UART_ReceiveData()函数来读取数据。

这个函数可以返回接收缓冲区中的数据。

3. 接下来,我们可以对读取到的数据进行处理。

单片机虚拟串口的使用方法

单片机虚拟串口的使用方法

单片机虚拟串口的使用方法单片机的虚拟串口是一种非常常见的通信方式,它利用串口模拟的方式来进行数据的传输。

虚拟串口能够让单片机和计算机之间实现数据的传输和通讯,从而方便了开发者的开发工作,更好地实现了单片机与计算机的互联互通。

虚拟串口的使用方法如下:1. 确定虚拟串口的通信参数在使用虚拟串口前,首先要确认好虚拟串口的通信参数。

一般来说,包括波特率、数据位、停止位、奇偶校验等参数。

这些参数需要与单片机的串口通信参数相对应,否则通信将会失败。

2. 安装虚拟串口驱动程序在计算机上进行单片机项目的开发时,需要先安装对应的虚拟串口驱动程序。

常用的虚拟串口驱动程序有VirtualSerialDriver、FTDI等。

在安装驱动程序时,需要根据计算机的操作系统版本,选择对应的驱动程序版本。

3. 编写单片机程序在单片机中涉及到虚拟串口的程序中,需要先初始化串口通信参数,并打开串口,然后循环等待从串口接收到的数据。

在循环中,可以使用串口发送数据给计算机,或者从计算机接收数据。

4. 在计算机上打开虚拟串口设备在单片机程序中设置好虚拟串口的通信参数后,需要在计算机上打开虚拟串口设备。

在计算机的设备管理器中,能够看到已经成功安装的虚拟串口设备。

打开对应的串口,设置对应的通信参数即可。

5. 测试通信在单片机和计算机之间建立虚拟串口连接后,需要进行测试,确保串口通信正常。

可以先从单片机发送数据给计算机,观察是否能够在计算机上接收到数据;然后,可以在计算机上发送数据给单片机,观察单片机是否能够接收到数据。

如果测试结果正确,就可以通过这个虚拟串口通讯了。

总的来说,单片机虚拟串口的使用是比较简单的,只需设置好通信参数,安装对应的驱动程序,然后编写好单片机程序,最后进行测试即可。

虚拟串口通信的优点是方便快捷,能够更好地连接单片机与计算机,方便数据传输和控制。

因此,在实际应用中,虚拟串口通信被广泛应用于各种单片机项目开发中。

keil与Proteus联调

keil与Proteus联调

k e i l与P r o t e u s联调------------------------------------------作者xxxx------------------------------------------日期xxxxKeil与Proteus的联调设置第一步:安装好Proteus、Keil uvision(本人用的是Proteus、Keil uvision5,其他版本类似)两个软件,并破解(相信大家不会用正版的),本教程是ARM联调,需要ARM,Keil 就要破解ARM的,需要51的就要破解51的。

第二步:安装Proteus VSM Simulator驱动(可以在网上免费下载到,百度一下。

虽然说供keil2和keil3用,但是亲测keil4和keil5也能用)。

当然也可以在下一步操作后安装,不过那样的话修改配置问价就麻烦一下等着瞧。

需要强调的是必须安装目录必须选在Keil uvision安装目录之下。

当然也可以只选择你所需要的。

安装完毕之后可以在C51和ARM下面目录的BIN文件夹的下面分别看到VDM51.dll和VDMARM.dll,如果没有,说明没有安装到指定路径下,请重新安装。

第三步:修改Keil uvision安装目录下的配置文件,即TOOLS.INI。

用记事本打开,或其他查看软件打开。

找到[ARMADS] 这一行下面的内容,到[C51]这一行为止,即[ARMADS]字段。

[ARMADS].........[C51]在 [ARMADS] 下面可能会看到下面这一行:CPUDLL0=SARM.DLL(TDRV0,TDRV4,TDRV5,TDRV8) # Drivers for ARM7/9 devices也就是默认可以使用TDRV0,TDRV4,TDRV5,TDRV8所代表的调试工具,为ARM7/9的驱动但是我们要使用Proteus调试,可[ARMADS]字段里面没有,接下来我们就把也它加进去。

使用keiL中的printf和scanf进行串口的调试

使用keiL中的printf和scanf进行串口的调试

使用keiL中的printf和scanf进行串口的调试1、printf( )和scanf(在包含在stdio.h中库函数printf( )的发送原理:首先在初始化时要把TI置1,如果不这样做,你的程序是会一直在JNB TI,$这条指令上跑,:printf( ) 库函数发送流程图2、使用C51输入输出函数都是通过串行口工作的,因此,要使用这类函数必须对单片机的串行口进行设置和初始化,如串口模式的选择和波特率的设定等等。

在需要使用printf函数时需要对串口进行初始化:SCON= 0x52; /*0101,0010:方式1,REN=1允许接收,8-bit UART,TI= 1;RI=0 */ PCON=0; /*SMOD=0*/TMOD |= 0x20; /*TMOD:定时器T1,工作模式2, 8位自动重载方式,在这里用\是为不影响T0的工作*/TH1= 0xf3; /*当波特率为2400时,定时器初值*/ TL1= 0xf3; TR1= 1; /*定时器T1开始运行*/TI= 1; /*在SCON中已经设置,允许发送数据*/3、proteus中仿真电路 RXDTXD库函数scanf( )的接收原理:U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/ A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/ INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD3938373635343332212223242526272810111 21314151617RTSCTS18XTAL2P116273849DCDDSRRXDRTSTXDCTSDTRRI9RST293031PSENALEEAER RORCOMPIM12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C31RXDTXDRTSCTS1(1)(2)(3)(4)数码管,用于观察是否从串口读得数据上面虚拟终端观察单片机接受的外部信号是否有下面虚拟终端观察单片机发送的信号P1是虚拟串口COMPIM,必须与虚拟串口软件联用软件虚拟仪器设置2运行(1)产生HEX(2)装载HEX(3)打开虚拟串口3实验结果:实现了单片机此案串口发送提示信号,please input(1-9),等待从串口反馈的的信号,当在串口调试器中发送去输入7,发送后,上面一个虚拟终端显示7,当单片机接受该信号后,显示出来,并进行运算,结果再次送到串口。

keil的调试步骤与方法

keil的调试步骤与方法

keil的调试步骤与方法Keil调试步骤与方法Keil是一款常用的嵌入式开发环境,用于编写和调试嵌入式系统的程序。

在进行嵌入式开发过程中,调试是一个非常重要的环节,它可以帮助开发人员找出程序中存在的问题并进行修复。

本文将介绍Keil的调试步骤与方法,帮助读者更好地进行嵌入式开发与调试。

一、准备工作在使用Keil进行调试之前,我们需要先进行一些准备工作。

首先,我们需要安装Keil软件,并配置好开发板的硬件环境。

其次,我们需要将待调试的程序下载到开发板中,并连接上调试器。

最后,我们需要在Keil中打开待调试的项目文件,以便进行后续的调试操作。

二、设置断点在进行程序调试时,我们常常需要在程序中设置断点,以便在指定位置停下来观察程序的执行情况。

在Keil中,我们可以通过单击代码行号的方式来设置断点。

当程序执行到设置的断点位置时,会自动停下来,以便我们观察相关的变量值和程序执行流程。

三、单步执行单步执行是调试过程中常用的操作之一,它可以使程序以单步的方式执行,以便我们逐行观察程序的执行情况。

在Keil中,我们可以通过点击工具栏上的“单步执行”按钮来进行单步执行操作。

在单步执行过程中,我们可以观察变量的值的变化,以及程序的执行流程,帮助我们找出程序中的问题。

四、观察变量值在调试过程中,我们经常需要观察程序中的变量值,以便判断程序的执行是否符合预期。

在Keil中,我们可以通过“观察窗口”来观察变量的值。

在观察窗口中,我们可以添加需要观察的变量,并在程序执行过程中实时查看其数值的变化。

五、查看寄存器值在嵌入式系统中,寄存器是非常重要的硬件资源,它们直接影响着程序的执行。

在Keil中,我们可以通过“寄存器窗口”来查看寄存器的值。

在寄存器窗口中,我们可以查看各个寄存器的当前值,以便判断程序的执行是否符合预期。

六、调试输出除了观察变量和寄存器的值外,我们还可以通过调试输出来观察程序的执行情况。

在Keil中,我们可以使用printf函数来进行调试输出。

  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
中的串口选择错误,要确保与虚拟串口一致。

相关文档
最新文档