【keil】单步调试

一、步骤

1、打开stc-isp软件

2.打开keil仿真设置,选择对应的单片机型号

3.点击将所选目标单片机设置为仿真芯片,点击下载,按一下单片机打下载按钮

4.此时已经将仿真程序下载到单片机

5.此时点击options,找到debug选择STC Montor 51 Driver

找到当前对应的端口号(和stc里面的端口号对应)

6.点击进入调试界面

注意点:默认状态选择到左边,应修改到选择右边

也可以看右下角,如果是simulation 显示的是STC Monitor-51才是对的

7.run开始运行 stop停止运行

二、单步调试

1、数码管显示不正常

 点击数组后,点击watch Windows

取消16进制显示

将刚才打印到的数组添加进去

注意的是,只用在停止状态数据才会刷新,程序运行过程中不会刷新

可以看到,这个数组是正确的 

下面继续排查 数码管转换函数中的另一个数组,一定要在停止状态添加,然后再运行,否则数据无法刷新

查看watch窗口可以看到,除了第一个,后面的都是空

因此,目前可以确定,错误在数码管转换函数里

进入函数发现,变量的初始条件没有设置

如果发现错误要进行修改,一定要退出调试界面,否则无法成功修改,要退出调试界面重新编译后,再进入调试界面,这个程序才会被更新 

2.忘记写EA=1

在其他地方打断点不会听,说明没有执行到这里

 然后再逐层往下面大断点

发现时间变量是0,这是不合理的

将断点打到这里,程序仍然没有停,说明程序没有运行到中断服务程序

然后再去看中断服务程序的初始化

看到是正确的,那么就可能是总中断没有开

3.断点的删除

删除所有断点

当然也可以手动删除

断点所停的行代表没有执行

4.功能按键

点击step是进入函数和执行当前这一步

 

点击step over是跳过这一个,是执行完再跳到下一步

step和step over的区别是:如果是函数,step会进入这个函数,step over是无论是不是函数,都执行到下一行

点击step out是 往下执行完函数,直到退出当前的函数

5.关于按键

在调试模式下,矩阵键盘上面的两行按键不能使用,由于P30和P31用到了串口通信,一旦按下上两行的按键,就会干扰串口通信调试就会崩溃掉 

如果程序里用到了这两行,就可以换两个按键,比如67改成89

在独立按键模式下,就可以换一下45

 6.头文件

当发现报一串错误时,可能是头文件的函数没有加分号

三、打包文件夹

选中两个,然后压缩到zip文件

 

然后以准考证号命名压缩包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++弱指针实现原理

在 C 中,弱指针(std::weak_ptr)是一种特殊的智能指针,其核心目标是‌解决 std::shared_ptr 的循环引用问题‌,同时不增加对象的引用计数。它的实现原理基于与 std::shared_ptr 共享的 ‌控制块(Control Blo…

【ManiSkill】环境success条件和reward函数学习笔记

1. “PickCube-v1” info["success"]:用于指示任务是否成功完成 布尔型张量,在环境的evaluate()方法中计算并返回: "success": is_obj_placed & is_robot_static这确保了机器人不仅能将物体准确放置在目标位置&am…

用空闲时间做了一个小程序-二维码生成器

一直在摸鱼中赚钱的大家好呀~ 先向各位鱼友们汇报一下情况,目前小程序已经有900的鱼友注册使用过。虽然每天都有新的鱼友注册,但是鱼友增长的还很缓慢。自从国庆前的文字转语音的工具上线到现在已经将近有1个月没有更新小程序了。但是今天终终终终终于又…

31天Python入门——第14天:异常处理

你好,我是安然无虞。 文章目录 异常处理1. Python异常2. 异常捕获try-except语句捕获所有的异常信息获取异常对象finally块 3. raise语句4. 自定义异常5. 函数调用里面产生的异常补充练习 异常处理 1. Python异常 Python异常指的是在程序执行过程中发生的错误或异…

PyQt6实例_批量下载pdf工具_使用pyinstaller与installForge打包成exe文件

目录 前置: 步骤: step one 准备好已开发完毕的项目代码 step two 安装pyinstaller step three 执行pyinstaller pdfdownload.py,获取初始.spec文件 step four 修改.spec文件,将data文件夹加入到打包程序中 step five 增加…

Axure项目实战:智慧城市APP(完整交互汇总版)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:智慧城市APP 主要内容:主功能(社保查询、医疗信息、公交查询等)、活动、消息、我的页面汇总 应用场景&#xff…

Appium Inspector使用教程

1.下载最新版本 https://github.com/appium/appium-inspector/releases 2.本地启动一个Appium服务 若Android SDK已安装Appium服务,则在任意terminal使用appium启动服务即可 3.Appium Inspector客户端配置连接到Appium服务 Configuring and Starting a Session…

Pycharm(七):几个简单案例

一.剪刀石头布 需求:和电脑玩剪刀石头布游戏 考察点:1.随机数;2.判断语句 import random # numrandom.randint(1,3) # print(num) # print(**30) #1.录入玩家手势 playerint(input(请输入手势:(1.剪刀 2.石头 3&…

Python Cookbook-4.13 获取字典的一个子集

任务 你有一个巨大的字典,字典中的一些键属于一个特定的集合,而你想创建一个包含这个键集合及其对应值的新字典。 解决方案 如果你不想改动原字典: def sub_dict(somedict,somekeys,default None):return dict([(k, somedict.get(k,default)) for k…

VMware Ubuntu 网络配置全攻略:从断网到畅通无阻

一、网络连接模式选择(先搞懂原理) VMware提供三种网络模式,就像手机的不同网络套餐: 模式适用场景特点类比NAT个人上网/新手首选虚拟机共享主机IP,能上网但隐身家用WiFi桥接服务器/需要被局域网访问虚拟机会获得独立…

链表(C++)

这是本人第二次学习链表,第一次学习链表是在大一上的C语言课上,首次接触,感到有些难;第二次是在大一下学习数据结构时(就是这次),使用C再次理解链表。同时,这也是开启数据结构学习写…

【SPP】蓝牙串口协议应用层深度解析:从连接建立到实战开发

目录 一、SPP应用层协议框架与角色模型 1.1 分层协议栈模型 1.2 设备角色模型(DevA 与 DevB 交互) 二、连接建立流程:从 SDP 到 RFCOMM 2.1 服务发现(SDP)流程(SDP 记录关键参数) 2.2 连接…

Giteki 认证:无线产品进入日本市场的关键保障

目录 适用产品认证范围 认证项目及技术要求 认证流程 认证周期 与其他认证的对比 常见问题 注意事项 Giteki 认证,其名称来源于日本语 “技適マーク”,罗马字拼写为 “GITEKI” ,在行业内也常被称为 Telec 认证、MIC 认证、RF 认证或技…

Ubuntu24.04 配置远程桌面服务

一:安装 sudo apt update sudo apt install vino 二:设置 gsettings set org.gnome.Vino require-encryption false # 关闭加密(某些 VNC 客户端不支持加密) gsettings set org.gnome.Vino prompt-enabled false # 关闭连接…

人工智能与软件工程结合的发展趋势

AI与软件工程的结合正在深刻改变软件开发的流程、工具和方法,其发展方向涵盖了从代码生成到系统维护的整个生命周期。以下是主要的发展方向和技术趋势: 1. 软件架构体系的重构 从“面向过程”到“面向目标”的架构转型: AI驱动软件设计以目标…

转发和重定向的区别详解

转发(Forward)和重定向(Redirect)是 Web 开发中两种常用的请求处理方式,主要用于将客户端请求从一个资源转移到另一个资源。它们在实现机制、行为表现和应用场景上有显著区别,以下是对两者的详细解析&#…

python专题1-----判断一个变量是否是字符串类型

在 Python 中,可以使用 isinstance() 函数来判断一个变量是否是字符串类型。字符串在 Python 中是以 str 类型表示的。下面是一些示例代码,展示如何判断一个变量是否是字符串类型: # 示例变量 var1 "Hello, World!" var2 12345 …

软件工程之需求工程(需求获取、分析、验证)

一、需求获取(Requirements Elicitation) 1. 定义与目标 需求获取是通过与用户、利益相关者等交互,识别并捕获系统需求的过程,目标是明确用户意图与业务目标,避免后期因需求偏差导致返工。 2. 主要方法 问卷法&…

Java简单生成pdf

生成这样的PDF 直接上代码 public static void main(String[] args) {String logoPath "Q:\\IdeaWork\\Demo\\src\\main\\webapp\\images\\logo.jpg"; // 替换为实际路径String baseDir "E:/Demo/TEST/problem/Generate"; // 基础目录int year 2025; //…

k8s存储介绍(六)StorangeClass

一、Kubernetes 存储类(StorageClass)详解 1. 什么是 StorageClass? 在 Kubernetes 中,StorageClass(存储类)是一种用于动态创建 PersistentVolume(PV)的资源对象。它允许管理员根…