当前位置: 首页 > news >正文

keil的debug功能

文章目录

  • 一.窗口介绍
  • 二.功能
    • 2.1 debug断点调试和窗口变量
    • 2.2 四个花括号功能
      • 2.2.1 进去函数和下一步功能
      • 2.2.2 跳过函数和跳过该行代码功能
      • 2.2.3 函数内部跳出功能
      • 2.2.4 执行到光标处
    • 2.3 查看内部寄存器

一.窗口介绍

在这里插入图片描述
在这里插入图片描述

二.功能

2.1 debug断点调试和窗口变量

先打开下图debug断点调试程序功能
在这里插入图片描述
在下面2张图中,之后我们可以给程序的某行设置断点
在这里插入图片描述
在这里插入图片描述
也可以把鼠标放到下图这里点击就可以设置
在这里插入图片描述
在下图中这个按键会执行到断点去,就是程序只执行到断点处,方便我们调试,就可以看程序有没有问题,如果执行了到断点处,程序没反应,则证明该程序出问题,则修改该处代码,假如在这个断点的上面设置了一个whle循环,如果没有触发某个条件,则会一直执行不到断点处,则证明上面的程序出现问题。
在这里插入图片描述
现在的程序如下列,,如果我断点打到b=1处,点击运行,则它一直没有运行到b=1,是因为按键没有按下。

uint8_t a;
uint8_t b;
int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_5);//按键初始化RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitTypeDef GPIO_Key_InitStructure;GPIO_Key_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_Key_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_Key_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_Key_InitStructure);while(a!=1){if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)==0)//按键按下{Delay_ms(20);while(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)==0);Delay_ms(20);a=1;//按键按下a才赋值为1}}b=1;while (1){				}
}

此时看不见程序执行到哪里,程序一直在疯狂运行中,我们可以点击红圈右边的×,则可以看见执行到哪里了。
在这里插入图片描述
此时下图红圈箭头则代表程序运行到这里来
在这里插入图片描述
此时我按下按键则程序运行出去到断点处
在这里插入图片描述
此时我们打开一个观察窗口,它可以输入变量,我们可以观察变量结果,如下图,我们输入b,然后在一次打一个断点,则程序往下走以后则b会变成1,因为,运行到此行只是说上面的程序执行完了,这行并未执行,所以第一个断点b并不会等于1,需要在下面空一行,打个新断点才会执行,记得每次改程序需要出去重新编译改程序下载进去。
在这里插入图片描述
之后如果想变量显示十六进制就勾上下图选项,想显示十进制就取消下图选项
在这里插入图片描述

2.2 四个花括号功能

2.2.1 进去函数和下一步功能

在下图中,先使用断点执行程序到该处,然后在点击下图按钮,该按钮是进入该函数,此外如果此行程序是一个变量什么的,点这个就相对于执行到下一步。
在这里插入图片描述

2.2.2 跳过函数和跳过该行代码功能

在下面两张图中,就是跳过该函数功能,还是一样,先执行断点,之后在点击,如果是变量的话就是跳过此行代码。
在这里插入图片描述
在这里插入图片描述

2.2.3 函数内部跳出功能

在下面2张图中,我们进入了该函数内部,如果想跳出去,则可以点击该功能。
在这里插入图片描述
在这里插入图片描述

2.2.4 执行到光标处

先使用鼠标点到某行代码,然后点击该功能,则代码会运行到光标处。
在这里插入图片描述
在这里插入图片描述

2.3 查看内部寄存器

下面两张图片,使用该功能可以查看芯片内部某个功能寄存器的数值

在这里插入图片描述
在这里插入图片描述


http://www.mrgr.cn/news/36239.html

相关文章:

  • Pycharm Python PyAutoGUI包 返回 “ImageNotFoundException“问题
  • Qemu开发ARM篇-6、emmc/SD卡AB分区镜像制作
  • docker搭建clickhouse并初始化用户名密码
  • 算法复杂度
  • 多层时间轮实现延迟消息
  • linux网络编程8
  • 使用Docker和Macvlan驱动程序模拟跨主机跨网段通信
  • 代理有什么用处?
  • 数据结构const char *INSTNAME[]
  • C++——输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,输出THGIL。用string方法。
  • 个人文章汇总
  • 类与对象—python
  • 有威胁的武器武装检测系统源码分享
  • 前端接口报错302 [已解决]
  • 深入理解及如何使用main函数参数
  • MySQL高阶1965-丢失信息的雇员
  • seL4 Threads(四)
  • 快速排序(C语言实现)
  • 教你快速完成大模型 API 的调用
  • Windows内核编程基础(2)