【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文件

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

相关推荐
笨笨饿6 小时前
#58_万能函数的构造方法:ReLU函数
数据结构·人工智能·stm32·单片机·硬件工程·学习方法
FreakStudio8 小时前
无硬件学LVGL:基于Web模拟器+MiroPython速通GUI开发—布局与空间管理篇
python·单片机·嵌入式·面向对象·并行计算·电子diy
三品吉他手会点灯10 小时前
STM32F103 学习笔记-21-串口通信(第4节)—串口发送和接收代码讲解(中)
笔记·stm32·单片机·嵌入式硬件·学习
项目題供诗13 小时前
STM32-LED闪烁&LED流水灯&蜂鸣器(四)
stm32·单片机·嵌入式硬件
xiangw@GZ15 小时前
EMC原理:四大抗扰度测试原理
单片机·嵌入式硬件
QH1392923188015 小时前
KEYSIGHT E5071C 端网络分析仪
网络·功能测试·嵌入式硬件·物联网·单元测试·集成测试·模块测试
I_Am_Zou16 小时前
STM32实战系列|智能摄像头巡检系统完整演示:第一讲
stm32·单片机·嵌入式硬件
发发就是发18 小时前
USB系统架构概述:从一次诡异的枚举失败说起
驱动开发·单片机·嵌入式硬件·算法·fpga开发
发发就是发18 小时前
TTY子系统与线路规程:那个让我深夜抓狂的串口“丢包”问题
linux·服务器·驱动开发·单片机·嵌入式硬件
RFCEO19 小时前
Rust编程基础课 第1课时:Rust简介与环境搭建 STM32 RUST嵌入式编程实战
stm32·嵌入式硬件·rust·probe-rs·rust工具链·rustup、cargo·stm32 rust适配