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

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.kler.cn/a/319776.html

相关文章:

  • 网络技术-网桥模式
  • MySQL【三】
  • GPT-5 要来了:抢先了解其创新突破
  • Database Advantages (数据库系统的优点)
  • ubuntu连接orangepi-zero-2w桌面的几种方法
  • 图像处理实验二(Image Understanding and Basic Processing)
  • IT行业的未来:技术变革与创新的持续推动
  • 解决fatal: unable to access ‘https://........git/‘: Recv failure: Operation time
  • ~关于 CAS 机制、ABA问题、偏向锁、synchronized 实现原理、信号量、Callable
  • Prompt最佳实践|如何用参考文本让ChatGPT答案更精准?
  • 深入理解Kubernetes供应链安全:CKS考试核心知识点实践
  • 在 expressjs 中MySQL 的datetime类型,怎么插入数据
  • 使用java实现ffmpeg的各种操作
  • 使用现有的科技或许无法实现对人类智能的模拟
  • 从零开始,Docker进阶之路(一):Docker基础
  • LocalStorage
  • 力扣中等 33.搜索旋转排序数组
  • MySQL中的函数简单总结,以及TCL语句的简单讲解
  • 三范式,面试重点
  • 食品检测与分类系统源码分享
  • 18-pg内核之日志管理器(六)checkpoint
  • 密码管理器介绍
  • 学习篇 | Ollama 安装、运行大模型(CPU 实操版)
  • 第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)
  • uniApp 解决uniapp三方地图获取位置接口的请求次数限制问题,分别提供 Android 和 iOS 的实现方法(原生插件获取)
  • 宠物智能化听诊器的健康管理!