粉丝8029获赞4.9万

调试的前提是安装好 m d k arm i d e 激活 kill, 确保 kill 能够编译软件。点击 option for target 按钮后,在 debug 标签页中选择好仿真器。 仿真前也要将二开发版连接仿真器,再把仿真器连接至电脑。下面开始讲解三个调试按钮的作用。首先点击 debug 按钮开始调试。 q, 软件的窗口会发生变化,将显示更多窗口。我们不要被这个变化所吓到,他只是为了呈现更多相关调试信息而已。单步调试, 这个按钮的名称是单步调试,顾名思义,他可执行单条语句。执行时如果遇到函数,则会进入函数的内部。执行单条语句。 单步跳过调试,这个按钮的名称是单步跳过调试。 与刚才的单步调试不同的是,这个调试功能在遇到函数时不会进入到函数的内部,而是直接全速运行函数并跳到下一条语句,而不会进入函数中去逐行执行语句。 单步返回调试,直接全速运行当前函数后的所有内容,直到函数返回上一集。

大家好,欢迎来到电子星,今天我们来演示一下 q 和不是 tus 仿真的联合调试,这是我们编写的一个简单的发光二极管闪烁的代码,我们通过 q 编译,编译之后生成害死文件,打开我们的 pro 仿真,建立好电路图, 通过双击单片机,在这里添加我们的程序文件,也就是说害死文件,找到对应的编译害死文件,打开, 打开以后点击 ok, 这样的话就形成了一个编译之后代码,然后通过文普儿跳死仿真验证的一个结果, 点击玩跳子左上左下角的一个类似播放的一个按钮,也就是说启动仿真,仿真启动后会按照我们真实编写的程序去运行,可以看到我们的发光二极管闪烁 后期呢,我们就通过这样一种方式为大家进行代码以及仿真实力的递进式的一个讲解,如果大家有问题可以在留言区留言进行交流,谢谢大家的观看。

学单面积找夏老师。大家好,我是夏老师。然后再点一下,这个是仿真的啊, 这个是在线仿真,这个仿真他是纯软件的啊,跟硬件没关系,他就是 q 软件,根据你真正的一个给了一个参数,然后来跑你的程序啊?和板子没关系啊,他不是硬件在线仿真, 一般硬件在线仿真的话我不怎么喜欢用啊,我觉得这个东西配置太麻烦了,只要你思维逻辑对了的话,结果都有了啊,没必要用仿真,仿真镜面你配置一下可能要配置你半个小时,配置好了过后即使调试成功了,你又要得把那 仿生部分的代码又要给他删掉,又要重新调,我就觉得那个没什么必要啊,有那个时间我还不如说我直接想要看某一个数据正不正常,我就直接加个易经平, 把那个变量让它显示在我的液晶屏上面,那么那么我们就知道这个变量到底正不正确啊,有没有问题?我都是通过排除法来找这些问题的啊。单面机的变成当中我是不喜欢用仿真的,这个就是我们一个软件模拟仿真的一个界面, 然后这个就是他自动生成的会边啊,这个我们可以不用看,我们可以通过拖动这个框就可以把它放到我们想要的位置啊。当我们按着鼠标左键不要松,然后就可以拖动他移动啊,然后你看我可以放在这里,然后这里就变得浅蓝色,如果我们松开 开他就会变成这样子,我们鼠标放在这里这个蓝的上面,按住左键拖动,然后我们想放在哪个位置,就是这,这有有四个箭头,这里这里这里这里,是吧?他都在变还,这里也可以放,这里也可以放,是不是? 然后我一般会放在这里啊,然后把这里拖过来,因为这个基本上都不看的啊,然后有的时候大家会发现把这些框点的不见了啊,一样的啊,都在 vivo 里面设置啊,大家记住 保持这样的,这个就是选中了的啊,这个带了黄色变了色的,就是他是选择出来的啊,然后就是这样啊, 然后保证和这一样的话,选择一样的话,那么你的窗口就是和我当前的窗口是一样的啊,大家记住窗口就在六里面去调出来的啊, 然后这个就是六里面的一些快捷键啊,你看这个图形跟着是不是一样的,就是这些快捷键啊。好,我们来看一下我们 q 软件仿真的一个使用方法,首先 这里有个 rst 的图标,这个图标就是复位按钮,当我们点下复位按钮的时候,程序就会在起始位置等待执行。 好,我们点一下复位按钮,然后第二个按钮就是全速执行按钮,当我们点一下全速执行,程序就会无限循环的执行我们的程序。好,我们点一下我们的 全速执行,点一下全速执行过后,第三个按钮就会被激活,就是这个按钮,一个红色的叉叉,这个按钮就是停止按钮,既然有全速执行,肯定就要有个停止按钮,是不是?这个就很好理解,点一下停止按钮,程序就会结束,全速执行, 我们来看一下第四个按钮,第四个按钮就是单步直行按钮,我们先复位一下,我们来看一下单步直行的运行流程啊,我们点一下单步直行, 点一下单步直行的时候,我们就可以看到这里有一个箭头的图标,箭头的图标就是指是我们当前程序运行的位置,我们再点击一下单步直行, 我们程序就执行到了这里,这个底类函数现在还没有执行,他是等待执行,如果说我们再点击一次单步执行的话,他就开始执行这个底类函数,我们再点击一次单步执行, 我们看一下我们的程序,我们的程序已经运行到了底类函数的内部,然后再等待执行这个货语句,我们这个货语句它是一个无大挂号内容的货语句,单步执行, 对于没有大挂号内容的复语句,他就把它当成是一条语句,点一下他就会直接把这条语句执行完。如果说这个复语句他有大挂号内容,那么单步执行就要 循环三万五千四百三十四次,我们仿真的时候我们不可能点三万多次啊。那么这第六个图标就是解决这个问题的,就是这个图标,这个按钮的作用就是跳出当前执行,就点击这个跳出当前执行, 我们看一下这些图标啊,他这个图标很形象啊,基本上看到这个图标的图示,我们大概就能知道这个图标按钮的一个作用啊,然后这个就是 跨过当前执行。跨过当前执行和单步执行唯一的区别就是他不执行函数内部的语句,单步执行他是他要进入到函数内部,执行函数内部的每一条语句,而跨过当前执行,他是不进入函数内部的 啊,他把函数就当成是一条语句直接运行完,这个就是单步直行和跨过当前直行的一个区别啊。 跨过当年执行也会遇到这种货与句的 n 字循环,那么这个时候也是一样的,也要通过跳出执行这个按钮来跳出货与句,或者某种,或者是某种其他的循环语句,因为我们的货与句它可以写在函数里面,是不是 我们也可以不写在函数里面?跨过当间执行,他只是跨过函数,不执行函数内部的每条语句,但是我们的酒馆语句他是可以不写在函数里面的。假如说 我们循环或许在这里,那么你跨过当前直行,他只能跨过函数内部,他跨过不了这里啊。好,这一个按钮就是直行到光标位, 他是什么作用啊?假如说我们的鼠标我们放在这里,这里有一个在闪,是不是我们再点击这里执行到光标位置,点击这里我们的程序就会执行到这个鼠标的位置停止, 我们把它放在这里,那么程序就会执行到这里停止。这个就是我们 q 软件纺织的一个常见的使用方法。好,我们复位一下。


大家好,欢迎来到电子芯,今天我们来看一下通过 q 和 prus 仿真进行发光二极管的点亮,这是我们一个发光二极管电路, 我们电路当中呢发光二极管,然后设计了一个限流电阻,通过接高电瓶,然后控制我们发光二极管的负极,也就是说阴极, 如果输出低电瓶,刚好我们符合发光二极管的一个电瓶要求,这样的话就会点亮,如果 输出高电瓶,发光二极管就会熄灭,这是我们通过 p 一点七口进行一个控制, 我们来到程序当中,首先要包含我们的单片机寄存器头文件,接下来就是定义我们这个发光二极管控制的银角接口 p 一点七,这个一定要和我们的电路当中对应起来, 我们这里是 p 一点七之后我们可以随意的命名,一般我们是命名的话是 采取一个啊含义的命名,也就是说看到这个名字我们就大概可以知道电路当中对应的是什么。 比如当前 led, 我们一看他肯定是一个发光二极管, 然后关键词 sb i t, 这个意思就是说我们要将这个计算器给他进行一个命名,也就是说 led 就代表 p 一点七 这里所有的 led。 接下来就是说我们的内函数,内函数呢,我们按照这规则去写就可以了,这没有什么可讲的,他没有参数, 这里呢其实他有一个返回值,返回的是零,这个我们这里写一个外偶的也没有错误, 不行呢,也是可以的。然后我们首先将它进行初始化,等于零,其实这里就可以让他进行一个点亮,零 就是低电瓶,他就已经亮了, 双斜杠屏蔽这个所有的绿色的代码都是没有实际含义的,就是说他是注视在编译的时候呢,就直接相当于没有,不会生成任何的啊。执行文件 我现在可以来编一下,可以看到我们下面零错误,零警告,然后 我们来打开我们的仿真双击单片机,找到我们对应的代码,找到害死文件,点击打开,然后这边点 点击我们的, ok, 这样我左下角运行, 运行以后他就点亮了,这就是一个点亮的代码,很简单很简单,那如果我们在这里给他设置为高电频,我们再来看一下 这个害死文件呢,设置好以后只要我们重新运行就可以了, 运行以后他是不会亮。运行以后我们可以看到这里有好多红色的点,红色的代表高电瓶,像这里有一个蓝色的点代表低电瓶,这就表示已经运行 在运行状态,这就是我们这个 led 点亮,如果大家有问题可以在留言区留言,我们进行交流。我们的这个原 文件放在我们的公众号当中,这里有写我们啊是在什么我们今我们的视频和文章会同步发布,大家可以在我们的文章当中获取我们的原文件进行学习,好,谢谢大家的观看。

大家好,我是周公,今天给大家讲解 k 五 m dk 的安装,首先纪念一个 mdk 的安装入宾, mdk 右级以管理的身份运行, 选择是点下一步选择,我同意点下一步安装路径浏览,选择新建的文件路径,点选择文件夹 更改也选择到这里,点下一步随便输入名称和邮箱号, 下一步等待安装完成。 点信任安装驱动点,安装 点心按摩, 取消勾选点完成。这是更新开发包,暂时不需要点关掉 扭,右击以关联身份运行,点试。然后再右击以关联身份运行注册器,点试 找到文件,选择许可管理,复制 id 号,粘贴到注册机,选择按点生成序列号,复制序列号,粘贴到 新的序列号位置,添加序列号,注册时间二零三二年,注册成功。 下下面我们安装开发包点这个 导入,导入 stm 三二开发直播,选择打开 等待导入完成,导入完成。 这样的话我们新建程序的时候可以选择 s tm 三二 sf 系列单面机进行开发。这次安装完成,谢谢大家观看。

大家好,今天介绍 rmp 软件中调试功能,对于调试工程最经常用的就是运行程序,点击运行程序的按钮之后,程序就会运行起来,点击这个红色停止运行按钮,程序就会停止, 程序会暂停到当前程序运行到的一个位置,然后这个选项是程序复位,是复位到我们程序最开始执行的地方,就是我们的启动文件,这三个按钮是最简单的按钮。然后来说一下这四个不同的调试步骤。 首先第一个单步调试,单步调试是每条语句都会去执行,比如说我们现在的断点运行的话,它在这个位置点击单步调试会跳到下一步,然后再点击一下单步调试,就 会跳转到这个函数题里面去执行。第二个逐步调试,点击他之后跳到下一个语句上,但是和刚才的单不调试不同,就是这里函数上的位置,现在执行下一步之后,单不调试会跳转到函数里面, 但是逐步调试不会,他不会进入函数体,而是跳到下一个语句中,这是单步调式不会做的执行步骤。第三个是跳出调试,这个跳出调试并不是跳出工程的调试,而是跳出这个函数体,跳转到最外层函数中, 比如说我们现在运行到这个函数里面,点击这一步是跳回到 may 函数里面。第四个就是一个运行的光标处,比如说光标上一道这里,点击这个按钮,他就会运行到,这一 不他就会停到光标所在的地方。然后最后一个箭头,这个箭头是一个跳转到暂停处,比如说我现在查看文件,查询到其他文件去了,我想找到我刚才运行停在了哪里, 点击这里就会看到光点暂停的地方,这就是几个调试的按钮的功能介绍。好了,本次分享到此结束,感谢观看。

正在学习 stm 三二仿真的初学者们,今天来分享一下如何在仿真中观察数据。咱们代码中的变量有全局变量、静态变量和局部变量等,还有一些数组如何观察这些数据,请大家听我简单介绍。好,我们进入仿真调试模式, 大家能看到我们屏幕左边啊,这边都是我们这个 cotex m 四核的计算器,这边这个是我们的临时变量啊,都存储在这儿,大家看,我们这个临时面函数底下有一个 time buffer, 它有四个字节的缓冲区啊,都是零,我们仍然在接收到数据的这个边设置一个断点,我们尝试一下啊,我们发送一下数据,大家看这个 time buffer 立刻收到了我们 从串口接收到的数据,那这个时候我们的全局变量该如何查看呢?啊,大家看啊,一个是 x buffer, 我们可以现在把它右键啊,我们加到 watch 二里面,大家看这个 buffer, 它现在内容都是空是吧,它能折叠,同时底还有一个全局变量 x then, 我们也加到 watch 二里面啊,加的 watch 一也可以是吧,这个长度也是零。好,我们接下来继续执行。 哎,这个执行完以后,再执行一步,这个变成了四,是吧?我们这个 buffer 啊,这边 a, b, c, d 显示出来了,是吧?同时呢,还有一个办法,我们还可以把这个 buffer 添加到 memory 里面,我们表示添添加到 memory 二啊,然后这片缓冲区实际上就是它这个数组的内存,这样我们通过这几种方法,我们可以顺利地观察到我们所有涉及到的变量数组内存的值。

大家好,欢迎来到悠闲电子屋,这期视频的话,呃,给大家介绍一下 protuse 和凯尔的一个连击, 呃,为什么要介绍这个呢?因为有粉丝啊,就比如说去找到这个 程序和仿真文件啊,然后解压出来之后点击仿真,哎,他会出现 这样的问题,就是,嗯,跳出这样的一个错误,不能够加载这个点 x 文件啊,那么这个其实很好解决,主要什么原因呢?就是我们这里啊,这里有个目录啊,这里有个目录, 呃,在自己的电脑上,放在嗯制作的过程当中,这个目录那么是正常的,当我把这个文件 到 u 盘考到别人的电脑,那么这个目录的话就更改,更改的话他就没法找到啊,没法找到这个,呃这个文件啊,就没法找到这个文件啊,所以说会出现这种问题, 那么怎么去呃连击呢?那么首先我们这个卡尔的话,呃编程他需要一个嘛?需要输出那个设置一下这个 x 文件啊,要创建这个勾一定要勾上去, 然后点击啊变异,那么这里他就会说创建了一个这个 led 的这个 x 文件啊, 这样子的话啊,我们再到仿真里面去啊,这里双击双击这个,嗯,单片机的话,这里会出现一个呃路径,我们 点击这个去打开,然后去找到这个我们写的程序的下面这个刚才创建的这个 x 文件,这样子的话就完成了我们,嗯加载的这个给单面积加载程序,那么我们点击仿真,这样子,呃效果就出现了。 那么这里,呃还有一些粉丝会问,哎,为什么这里经政电路和复位电路都没有啊,那么其实啊,我们可以把它画出来,那么在仿真里面啊,他默认啊,这一部这里已经是完善的啊,所以说他就不需要画这个电路,他也能够进行一个仿真啊。 那么程序的话,呃,这是一个闪烁灯啊,我们可以看一下这个程序啊,非常的简单, 非常的简单,这里就是一个,呃,设定一下,嗯, p 零点零的这个这一位啊,然后一个用了一个延时函数, 然后首先让这个霹雳口全部都全部都输出零啊,全部输出零,那么这一路刚好啊,就是 直接点亮了,然后这一路的话啊,这里用了一个扫码电阻,然后这里是输出啊,高低电瓶,这里每次都进行一个取返啊,延时啊,两百五十 啊。呃,这期视频的话,关键的话就是讲这个程序怎么啊?导到这个仿真的单片集里面去,谢谢大家。

为什么 tft 快速入门教程五, kill 和虚拟屏调试根据 kill 开发软件的仿真功能,广州大彩在 pc 软件 vehicle tft 上的虚拟串口屏中添加了与 kill 仿真连调的功能,该功能可以实现在电脑上仿真演示 mcu 程序与串口屏交互的效果,并 且通过此功能调试程序可以大大地减少在开发过程中反复下载 m c u 程序和串口屏。用 i 工程的调试时间软件 v s p d 为虚拟串口驱动生成软件,通过该软件可以创建一对关联的虚拟串口肉用户已经在上一个视频创建,可直接跳过 一步,安装虚拟串口软件 po 软件和虚拟串口屏连条需要一对相关联的虚拟串口实现。通过 v s p d 软件可以生成虚拟串口。若已经安装软件 v s p d 此章节可以跳过。安装步骤如下,一、在广州大彩的官网中和软件开发包中有提供虚拟串口软件 v s p d 安装, 装包如下图所示。安装前请先查看安装报下的使用前必读 t x t 文档,再点击运行 v s b d e x c 安装软件,选择安装路径,一直点击下一步,直至安装完成,如下图所示。 第二步,创建虚拟串口,打开虚拟串口软件,选择 com 六和 com 七,点击 ad pair, 生成一对关联的虚拟串口。创建虚拟串口,如图所示。 注意,虚拟串口编号不能与实体串口编号重复,否则会导致串口无法正常使用。虚拟串口的编号尽量在十以内,虚拟串口编号超过十十 t o 软件仿真实可能不支持。第三步,配置 t o 工程属性 上一章节中已经生成了一对虚拟串口 com 六和 com 七,接下来我们需要把虚拟串口屏连接到 com 七 q 软件模拟器串口映射到 com 六,再通过一些属性配置就可以完成二者连击。操作步骤如下,一、查看仿真串口即存 神器 arm 系列 m c 有可能有多个串口。查看串口寄存器的方法如下,一、点击 q 软件菜单中迪吧按钮,进入调试状态,然后在 q 工程左下角窗口输入 derf drag, 即可以查看当前 m c u 仿真支持的多少个串口,如下图所示。二、如果显示当前无串口, 请检查是否有设置仿真 mcu。 检查方法,在 kill 软件界面点击工具栏中 options for target, 并在弹窗中选择 debug, 如下图所示。三、添加完仿真 mcu 型号后,重新编译工程,如下图所示。四、编译完成后,点击第八按钮,重新输入 derp check。 若该型号芯片支持仿真,会在窗口中显示该芯片的串口寄存器,如下图所示。五、 五、若该型号芯片不支持仿真,则不显示串口寄存器,如下图所示。一、创建 comdo bog uni 配置文件一、在 kill 程序工程任意目录下新建一个 记事本,命名 com the book text e 如右图所示,在文本中编写以下两句命令, modecom 六幺九二零零零八一、 assigncom 六 se nse out 第一句命令的功能是把 com 六的属性设置为一万九千两百波特律零无叫验位八位数据位一位停止位。 第二句命令的功能是把软件仿真器的串考一映射到 com 六。特别注意不同的 m c u 上面的 assign 语句有细微的差别,如下所示, i m 系列 m c u s n com 六 se out 八零五幺系列 m c u s n com 六 salt s t c 系列 m c u as income 六 s 零 out 提示,当仿真 m c u 使用串口 e 以外的串口时,需要将上面的 assign 语句修改为对应的串口。如使用串口两时, s e 音改为 s 二音, s e out 改为 s 二 out。 三、修改 comdo bog text 后缀名改为 comdo bog 一腻,这样就完成创建配 制文件,如右图所示。提示,若电脑上的记事本未显示 t x e 后缀扩展名,可以进入文件夹选型,去掉隐藏一只文件类型的扩展名,如左图所示。对于 win 七系统,点击文件栏的组织,选择文件夹和搜索选项,即可弹出该制界面。 一、打开 q 工程,点击工具栏中 options for target, 并在弹窗中选择 debug 配置,如下所示。一、在 debug 配置中选中左侧 used emulator, 并将把工程目录中 combat bug eni 配置文件添加到 initialization file 中,如下所示。 然后修改窗口中 c p u 仿真参数, c p u d n l 修改为 siren com 三 d n l perhammator 不填 dialog dial 修改为 diamstam dial perhaps p s t m 三二 f 幺零三 v c 此处为填仿真芯片型号。注,部分 m c u 不支持仿真功能的,如 s t m 三二 f 四系列的 m c 又是不支持软件仿真。注意,五十一单片机此处不需要修改,直接跳过第四步,配置创口屏工程。工程配置可以参考开发包中的出厂历程,这里不做详细介绍。 一、打开出厂历程,点击运行虚拟串口屏,待软件编译通过后,会弹出虚拟串口屏的窗口,如下所示,一 一选择虚拟串口为 com 七,波特率为一万九千两百波特率,与配置文件的波特率一致。然后点击打开串口和根据需求选择是否将窗口置顶,如下所示。第五步,程序连条演示编译成功后,点击第八按钮,如下所示。开始全速运行程序后,效果如下所示。

大家好,上一节我们讲述了嵌入式软硬件实战开发片的这个软软件部分的一个整体规划,哎,以及这个本系列课程区别于其他课程的一些特色特点, 哎,然后还有一些优势是什么?然后从本节课程的话,就是开始我们这个正式的一些学习内容,就是首先是这个开发工具片的学习, 我们公寓善其事必先利其器,那我们首先要哎这个了解和使用,会使用这些开发工具。好, 那我们哎本节课程主要讲的内容是哎两个方面。第一个第一,第一个是 q 这个软件的一个介绍,基本实用的一个介绍,主要是从 q 的一些呃菜单, 甘蓝,还有这个 q 的一些界面,以及 q 的一些常用的一些设置,以及他哎所常用的是出现的一些问题等等。从这方面哎就是使用软件的时候常见的一些几个问题这方面来入手。那么在下一节的时候我们会讲这个 q 哎 q 这个建立工程的一些文件,文件夹的命名,或者是文件的一些嗯结构,那我们知道就是我们一般建立一个空工程,然后供大家来使用,这个空工程里面有一些常用的一些功能, 还有就是我们这个标准库里面的一些这个外设,外设的一些呃驱动函数,以及他这个期间的相关的一些启动文件等等,这些东 东西都是具备的,然后用户拿到这个的话就直接能在上面进行开发。这哎就是我们所建立的这样一个工程提供给大家。 然后以后的话在做项目的过程中,如果可以用的话,可以参考或者直接拿来使用也行。接下来就是讲一些这个 q 的这个调试。 好,调试哎功能,调试的一些界面,调试的一些设置等等,这方面还有,呃 重要的一点就是说还有一些阿姆的这个哎,因为我们 q 的话主要针对于是阿姆和的来进行,阿姆公司推出的对于阿姆和的一些单片机来进行哎是开发的一个工具,那么我们就哎对这个阿姆所常用的这个 追踪功能哎就是进行一个介绍使用说明,那通过我们就是发现问题的话,一般通过这个调试的主要通过调试的手段,但是我们 q 的话就是阿姆这个还提供了一种追踪的手段,也就是说调试加追踪 这两个结合的方式来分析解决定位问题,这样有助于我们快速的解决哎问题,完好我们的这个项目任务。好,那哎开始我们这个哎 q 软件界面的一个哎学习。好, 那这个是一个 q 的一个软件界面,是一个工程卡,那我们来看一下,来看一下把 q 这个软件打开,这是我们打开的一个 q 软件。 好,那么我们先开始看一下这上面这些菜单栏,还有这些工具栏。工具栏好,这是上面有一排工具栏,下面有一排工具栏,这些工具栏其实在上面这些菜单栏里面也包含了常用的菜单栏里面的内容 已经在这个工具栏里面体现出来了。好,那么我们来首先来看一下这个哎这个工具栏 哎菜单栏首先它是一个新建的一个文件,新建文件那这个地方就有我们哎就是 写 c 点, c 点 h 的话,在这个里面可以直接建立,然后命名、保存,也可以在这个地方来进行一个,嗯,添加,添加也行,也可以。好,哎,大多数人 就是通过这种方式来进行添加的。好,那这个就是建立一个文件,当然我们这个这个地方也可以,哎,那个瑞德密,哎呀点 tax 也可以从这个地方来建啊。那接下来就是打开一个工程, 关闭工程,那这个都是很很简单的,那接下来就是 cocos 这些 coo, 这些大家都都会用,都会用,那这个也没啥说的,这是现在,你看这个地方也有,这是欧喷打开一个工程,打开工程,然后这个是哎,哎,保存, 这个保存所有这个是好,这个地方是一个,哎,另存为,那这些都有,这些都有,那这个地方就是破解用的,破解用的,破解软件用的,然后这个 cid 放到那个 k 镇那个软件里面,然后 成这样一个码,然后通过这个地方添加进来,这我们就给破解了,破解了,然后哎,接下来的话,我们,哎再看这个下面,这下面这些是最近打开的一个 点 c 点 h 的一些文件,在下面这个是打印,这是打印的一些设置,让我们一般都不用这个。然后艾对特里面就是我们常用的这个就是,呃撤销,哎,剪切、复制、粘粘切等等这些都有。然后这个是我们这个向导,这个 向后,哎,这是向前向后的这个一个东西,这个你看这个是这个是向后啊,这是往上往上走的,然后他也可以向向下,你看这是往往下往后上走的啊, 那这个其实都用的不多,不重要。然后这个其实就是一个插入, 然后我们这个也用的比较少,那这个这几个用的都比较少,那用的多的是哪个?就是这个这几个,哎,这个寻找就是这个我们怎么怎么来呢?就是 ctrl f, 然后这个是在所有的文件里面来进行寻找。这个这个是当然是在当前工程的整个工程里面,那这个是可以是当前文件的去, 所以当前文件,所以那当然这个也可以设置成整个工程的一个,所以这个都是可以的。那这个就是寻找,因为有些就比如说这个变量哈,那我们设置成整个工程啊,看这个工,整个工程都有。那如果你看 这个是在这个 cotes m 四点四 h, 呃,这个 cotes 四这个 h 里面,然后如果说是,哎,我们如果在当前工程,这是当前工程,然后在整个工程来, 这是在下一个寻找,那我们在这个整个工程里面去找的话,那他这个也是除了这个里面,其实其他的都没用到,那所以说他在这个里面只有在这个里面有,那么我们来另找一个,另找一个,比方说我们这个扛 这个,这个的话在整个工程里面哪用到了呢?哎,就是在这个这么多地方,这么多地方,哎,就是主要是在 stdl 点 h 里面用到了,然后慢点 c 里面 用到了啊,这,这就是整个工程去寻找这个关键字,这个还有一个里面他有一个替换,替换,哎,在这个下面,在这的话,你你寻找就是想下了,然后你在这个地方点一下,哎,他就整整起了, 那你这个就是比如说哎呀替换,整个工程里面要把上面这个变量替换成下面哪个变量,或者是给哪个变量重新命一下名,整个工程里面全部统一替换,那这个是比较重要的,那我们寻找和替换,这个是用的非常非常多的啊。 然后接下来就是我们这个,哎轮廓,这个轮廓是什么?轮廓也不重要,轮廓就是这个线,这个线有没有这个线的问题。好,那其实这样的话,哎,哎隐藏这就没了,然后显示的话他就 出来了,就这么一个,然后高级选项,高级选项来我们看一下,那高级选项就是哎这些,当然我们现在也用的不多,这个,这个用的哎,用的不是很多,然后用的多的还有一个卡飞杆。 好,那我们来看艾德特,那我们为什么要选这个呢?这里面主之前的话,哎,默认的话是他为什么要选选这个 gb 二三幺二, 主要是我们这个 q 里面有一些,你如果备注啊写一些汉字在里面,如果你选其他的的话,他会这个汉字会出现乱码 的现象,那如果选 jb 二三幺三这种编码方式的话,那就不会出现乱码,是正常显示。好,这个是颜色,颜色和字体这个像哎用,用的也是非常非常多的,那这个字 大小当然是哎,我们一般来说觉得这个太小的话,太小的话我们要放大,按照 ctrl, 然后鼠标的滚轮,然后也要滚就放大了。好, 那这个通过这个地方也可以设置这个,呃字体的一些大小以及颜色啊,那这个地方其实哎就是设置的就是一行背景行的一个哎颜色,那这个你们就选中的是 哎字字的一些颜色,比方说,哎,我们选这个是不是绿色,然后选它是蓝色,这个也没有什么呃可说的。然后, 哎,主要的以后啊,就是这有一个,这有一个,他这个这个是背景颜色,背景颜色的一个调节,这谁谁家家编辑 记文文件就是点 c、 点点 s, 或者是点点 c、 点 cpp 这种的话,哎,这是哎背景整个背景文本背景的一个呃,更改,我们是浅绿色的,这样,嗯,比较节省眼睛一点,这个数字是显得是这种颜色的,数字是这种颜色的 操作符啦、块啦这些,哎,这是整个块的一个,这个整个块的这个叫什么?叫哎? 解释,哎,解释,然后这个行的一个就是备注吗?备注,解释,然后他是都是这种绿色的,那怎么看嘞?好,那比如说方说我们他就这种绿色,他就这个这设置的这种颜色而已,设置的这种颜色当然很多哎, 别人就是在调代码的时候,对一些哎自己的颜色觉得哪些颜色看着舒服,因为个人因人而异进行一个调节和 替换。好,那我们这个背景颜色从我这儿去来调节字字体,字体的话太色字体是黑色的,我们从这个地方来进行一个设置。好,那这些后面都是字符串啦,字符啦、操作符啦,这些都是 都有他自己的颜色,都有他自己的颜色可以分得清,你看这个字符,这个是这种颜色的,这有都有显示,然后这个关键字,你看关键字是这种蓝色的,你看这硬头歪歪的都是蓝色的啊,他,他这个就是这样子。 好,哎,接下来的话我们再来看一下这个,呃, vivo, vivo 的话就是些工具栏吗?他这个非要工具栏, beyond 工具栏,你看这是这个是文件的一些工具栏,然后 beyond 工具栏就是他这几个,然后这是工具栏,你看,哎,接下来 后面这些是什么?这个特窗口,这是窗口栏,窗口栏就是这些,这些,哎,模板这些都是 红了这些关键字了啥的,这些是所用的的函数,函数,每个文件里面看用的哪些函数他都会有体现,那这个是他里面呃,所包含的一些书籍,然后这个是我们所说的一个工程。好,那这个就是 vivo 试试图里面的一些东西, 这个是工程,这是打开工程,新建工程,然后新建多个工程,关闭工程,然后管理这个管 的话,哎,这里面这个也是用的是比较多的,然后这几个,这几个,嗯的话,哎,也是在这个地方也是有的。好,那我们再来看一下,这是编译的,编译的,这和这个是那个魔法棒,魔术棒,这个用的比较多,这个是清除这个编译好, 那这个魔法棒叫就是其实就是工程选项卡,这个是用的特别特别多的,这个里面的内容大家一定要非常的清楚,因为我们用的最多的也就是那个地方,这是弗兰史下载程序用的,连上我们的这个仿真器,得八个,然后就能就能当录的里面的东西,你看 这个是我们没选这个仿真器,等会我们会选仿真器,选完之后就可以当录的,还可以擦出里面的内容。好,那这是 debug, debug 是在这个地方,在很多的里面东西 都是这些断点啦什么的,都是可以在第八个模式下去加的。然后这是外设,这个是工具栏,其他的都不不重要,这个 haopo 里面就是主要哎,说了这个微人的工具,哎,怎么用怎么用,然后这个版本啦,什么检查更新了这些, 这个很多软件都有,然后咱们就不说了,那这个是哎向后向前的,然后哎这个这个比如说这是屏蔽的,比如说哎,这个是,比如说这么一选,哎,这个就是屏蔽了,这个是解除屏蔽的,这个就是 你看向左对齐,然后这个是向右伸一格,他是这样子的,就是为了排版的方便来进行呃设置的。然后这个是咖啡的那个配置,我们这个点 因为常用到的,常用到的所有的东西都在这个里面都有这个,哎,我们要用这个,用这个,这个用好,一个管理一个魔法棒,一个这个像扳手一样的东西,就这几个比较常用,然后在这个就是得把个模式,这个是断点,好, 接下来我们来看的看的是什么?看的就是这个魔法棒里面的一些内容,都主要主要是哪些东西 好,哎呦,这个魔法棒我们先点开,第一个是 defines, defines 好, 是是一个什么呢?就是选择这个芯片的这个型号,那个选择的这个芯片的型号的话,他就是编译器的一些标志啊,选择编译哪个?呃,芯片 在里面代码,然后编这个编辑器的一个标志,以及这个存储器的一个映射,映射表,以及他这个弗兰史下载算法这些只要你把它选中之后,他就是默认的就配起来了,配好了。好, 那,哎,这个,呃,后面这些什么,哎?弗兰石加载算法啦,存储器映射表啦,这后面我们再说,大家有这个概念就行。然后这个地方的话你就选选,选中了这个型号,这个这个地方就是他这个七件,七件包的一个版本, 或者是说是一个名称。好,这个就是对,这边是对这个 f 三二 f 四零七的一个啊,概数,一个概数,他有哪些 io 资源啦什么的,这些有一个,哎,重主要的一个说明。 好,那我们接下来再看这个他给他,他给他就是直接就是定义这个旗舰,呃,旗舰表的, 他给他就是定义的这些映射映射这些表。好,那我们来看一下这个怎么定义他,他这个地方是我们的京镇,外部是八兆,八兆我们写个八,然后这个是后面的仿真也能用到。 接下来这个是 m 的编译器,我们是用的是最新的,最新的这个是 v 五点零五的,这个是,我们是 最新的,我们选择最新就行。带这个是选操作系统的,你用不用他这个?哎,啊母给出的一个微型的一个小型的一个操作系统,我们一般来说不选,不选他的用的话都是什么 啊? rg 入车了,这些 rgfri 的这些不用这个 rgx 这个,然后接下来是我们这个交叉块,这个我们一般不选,这个是微酷,这个是主要是用来这个 什么的,就是普润特福这个里面用到的一些东西的话,哎,牵扯的一些酷都是用的是微微酷,然后如果我们用到普润特福的话, 是福点运算,你要选他还是不选的话,这个地方,哎,只要 no 柚子就是不用,不,不用他的一个福点功能,如果选上的话,哎,就是用他的福点功能,这个大端的话,他不支持,这不写好。 然后接下来就是,哎,我们这个存储映射,存储映射,存储映射的话主要分为片类的一个 肉母以及片外的 ram 跟片类的一个 ram, 这怎么说呢?就是说我们 s m 三二 f 四,它有呃,片类的有一个多少一照的一个 flance 一一照的,也可以说是孬 flance, 这个也就是这所说的这个肉, 如果说是我们用户哎用到的他这个移照不能满足我们这个需求,比如说我们存的数据或者代码都超过了移照了,那么我们就要把代码要放在外部的一个蓝石里面,那这样的话就 就是有一个外部肉目,那我们没有,目前没有这个扩展,所以说这边都不用钱,也不用选。然后这边 ram 的话,这个也是一样的,也是一样的,这个是外扩的一个 ram, 这是片内的 ram。 骗类的 ram 是从零二零零开始的,它大小是二零零零。 然后我们这个 s t m 三 f 系列的这个单片机的话,他这个弗兰氏是从八零零零这个地址开始,到幺零零零这个结束,这正好是遗照。 好,那么我们这就是我们这个 on off of trip, 这是片外 on trip, 这是片上,片上这个当然也是一样的,那这就是我们这个 他给他来,那我们再看一下阿普特,普特兰,阿普特,就是,哎,我们这个输出,那我们要说输出的话,我们必须要看一下这个呃单单片机这一个,或者是他呃呃 嵌入式这个 c 的一个编译的一个过程,或者说是编译的一个步骤程,他是主要是你看下面有很多的, 这先关掉,他有许多的这个 c 文件。 c 文件, c 文件在哪?这里面不是有很多的 c 文件吗? c 文件,然后我们是怎么编译的呢?就是把这些 c 文件用这个,我们这有一个叫按摩的编辑器吗?按编译器, 然后他把这个哎点 c, 点点 c 文件编编译成这个点欧文件,点欧文件, 那我们哎编译的时候我们都会,都会有,都会有,这正在你看这翻译的时候,他就编译的时候正在编译吗?把这些都编译成相应的点欧文件,那点欧文件,然后哎这个点欧文件就是这个单片机所能识别的这种机器吧。 好,那然后还有一个阿姆的一个链接器,他就把这些阿姆,阿姆,把这些链接器,阿姆的 链接器,把这些哎点欧文件,哎跟他相应的这个函数库链接起来,形成一个哎单片机最终要执行的一个哎文件。那我们 st 的这个单片机最后要执行的文件是什么?点 axf 啊?点 axf, 那,那 都通过这个编译成点欧,最后链接,把这些电欧点欧文业链接成这个点 axf, 这样就是我们最后的过程,那通过这最后的这个点 asf 单片机能识别。但是我们最后做二级布特的时候,或者是在线升级的时候就会把,这 就需要的是点 b 文件,或者点 x 文件或者等等,那我们进而可以把这个点 xafaaxf 文件转成 点这个哎海克斯哎点币文件,然后也可以通过呃反汇编把它转成点 tax 的这种文件。好,那接下来我们 继续来看这个 oppo 特,那好,那这个的地方其实就相当于是把我们输出的这个点哎 axf, 还有这个点这个 hax 文件,然后选了一个路径放在这里面了,放在这里面,你看这就是我们 所生成的这些点欧文件,还有这点点 crf, 这些都是一个哎中间文件链接的一个中间文件。好,这些都是我们不用的,我们用的是什么呢?这有个名字执行的名字叫 temptate, 这跟你工程名字是一样的,那他这个名字最后 青春点 axf 就是 tempera templet, 然后点 axf 还有 templet 点 x。 好,那我们在你在这里面可以找一下,找一下。好,那这个 在这,这不是他这个我们单片机要下载的这个点 axxaxf 文件,看,这都有在 obg 下面的,太呃 timbulata 点 axf 文件,当然他也创建了一个呃点 ax 文件。啊, 这,这个有什么用呢?就是说你建这么一个工程之后,他把中间这些文件全部放在你这个点 obg 这个文件下,那这样的话,你你这个工程如果是全部都点 c 点 h, 如果不这么分文件分开的话, 那你这里面全是一团糟,你到时候呃寻找和维护的时候,工程呃项目量一大的话,那就变得很复杂,很,很很乱。所以说我们 一般来说就是哎建立这么一个文件,专门放这个中间文件以及最后生成的一个目标码的,然后这个得八个,用房没审。这个是很重要的,就是说你最后要进行得八个的时候,你要把这个选上,如果不选这个的话,你是进不了这个得八个模式的 啊。然后,呃,这个浏览信息的话是什什么呢?就是说我们这个一点是不是有一个,哎,哎,沟通得发,就是说他哪个定这个是没有的,然后这是定义的,他也可以转过去,但是如果说是,如果说是你哪天你发现 这个东西转不过去了,那你的原因是什么呢?原因就是,哎,你在这个阿特普特的时候你没勾选这个啊,那这个是什么呢?这个大家可以理解为就是生成一个编译的一个麦克菲奥脚本文件啊,这个我们一般不选,不需要 在只有在零六次情况下我们才自己会写这个麦克菲奥,因为没有他这么一个工具去帮你编译。那有一个开源的叫 gcc 的一个 工具,然后我们给 gcc 里面写相应的命令,写相应的一个呃呃,脚本文件,他 gcc 就根据这个脚本文件去编译你这个,呃,这个点 c 这个文件生成你最后要生成的这个目标吗?好,那这个,呃 后面这个是什么呢?就是说你生成的是一个静态库呢?还是生成的是你单片机可执行的这种 axf 文件?这个是二选一的,你生成单面机可执行的这种目标文件的话,你就不能生成静态库了。好,是这么一个过程。 好,接下来我们再看这个列表。列表好,这个列表是什么呢?他这个列表的里面的,哎,主要,主要这个内容就是 呃,主要就是呃定义的一些这个汇编的一个信息表,以及卖谱文件,哎,生成卖谱文件所呃 所生成的一些象象啊,那这个哎也是可以选这个路径的,那我们选在哪里的呢?我们选在这个 obg, 也是在这个里面了,在这个里面了, 选到这个里面去了,好,这个里面也有一个,应该还是有漫步文件,也是在里面的,你看这个漫步文件也是在里面的。好, 这个哎,这个地方就是为什么要有汇编呢?就是大家在仿真的时候,下面是 c, 上面是汇编,对吧?可以帮助大家去寻找问题。那所以说我们要把这个汇编选上,如果不选的话,上面就没有汇编,就 嗯没有生成这个这个文件的话,那你大家就是肯定不会,哎,很容易的,不像有汇编的话那么容易找到问题。然后这个是林可这个 哎链接器,链接器,这就是我们所说的把那些点物链接起来,这个链接器,链接器利斯特,哎,里面他会生成一个链接的时候生成一个麦普 文件。那这个卖普文件里面有哪些信息呢?你这个内存,哎,内存的一个映射,就是说哪些哎全局变量,然后这个呃函数, 哎,还有这个就一些数组啦,等等这些分配的一些地址是什么?然后这些函数或者占用的一个空间是多大? 然后最后就是呃总体的赛,这就是赛斯嘛,占用的空间是多大?然后这个偷偷赛,就是哎 整个工程的话占用了多少?那个哎福拉是多少个 ram 资源,这个是非常非常重要的,这个可以。哎,我们哎单片机很出现很多很多问题,可能是因为资源不够了,很多问题,因为我们哎在代码编译的时候是寻找不出来的, 就是单键机程序下载下去有各种问题了,他这个慢腐文件是解决问题的一个非常非常重要的手段,所以说我们一定要学会看慢腐文件。 这个优字是什么呢?优字也是哎,非常哎,其实这个也算不上重要,他就是 一输入一些命令的一些命令码的一些用用途,那他主要的一个用途用到的就是你不是。 哎。二就是在线升级的时候需要这个 app 文件,是避孕文件吗?避孕文件,那你这没有生成啊,只能生成 hikes 和点 axf 啊, 这种情况下的话,我们这输入相应的命令就可以把 axfaxf 转成咱们的这个并文件,这样是非常简单的,就是通过这个一个 哎这一选一个命令就可以转出并文件了,这种哎就是这种用途。好,接下来再看我们这个 cc c 佳佳的这一栏, cc 佳佳的这里面就是主要做一些玉,红的一些玉处理, 然后还有一些哎文件路径的一些缩影以及代码,这个生成这个代码块还有一些优化等等这些方面的一些呃,内容。好,首先我们看这个红,它这里面,这个 里面,他这里面就是有许多许多的一些红,我们可以通过这个地方可以把一些红开关打开。好,那我们再用一下 ctrl f。 好,那我们刚才不是看到一个红吗? 看这个地方哪里用到了?你看这么多里面用到了,好,那我们点一下, 嗯,弹不过去。好,那么我们随便点一个,随便 iicm 三二 f 四叉叉里面有。 好,那这里面你看这是什么? f 四,呃,这,这,你看 f 四二四叉叉,这些都是红,这些都是红,然后我们这个四零四一幺叉这些都是红,那我如果你看如果定义了这个, 然后就定义这个,然后他这些全是一些红开关。好, 那我们来看一下我们这个红四零四幺叉,那我 我们定义的是 s 千三二四零四幺叉叉,哎,这个红,那我们就相当于是把这个红开关给打开了,然后再把这个红开关用的是,哎,标准外射库驱动,这个红开关打开。好,主要就是这两个红开关要打开, 接下来这个是语言,哎,代码生成器。好,那这个的话就是我们所说的就是这个 生成。哎,只执行,可只只执行的一个代码。还有这个这个地方就是个优化,优化啊, 那优化的话就是有四个等级,有有默认的等级,有等级零一二三,根据这个优化可以把我们的一些哎开,开出的一些局部变,一些变量,全局变量等等这些。

今天来和倩瑞开发的初学者分享 q 环境下进入和退出仿真的方法。好,大家在编译成功以后,先进入工程选项卡,然后选到第八个,我们根据和开发版连接的仿真器的型号选择仿真器。我们这边使用的是 dap 仿真器, 我们点 setting, 如果这边出现了序列号,则证明我们的仿真器和我们的开发版已经连接成功。然后这边我们把这两个勾都勾起来啊,一个是运行到面函数,一个是自动的把这个应用程序载入,我们点 start 这个按钮。 好,这时候已经进入到仿真调试模式,我们怎么样退出呢?仍然是点这个按钮。好,这时候我们已经退出了仿真调试模式。需要注意的是,我们的程序已经下载到了 mcu 中。

今天给大家介绍一下 t o 软件是如何添加五幺芯片的, 其实芯片包是通过烧路软件添加到 kill 的,安装前要先推出 kill 软件。我们就以 s t c 公司的五十一芯片为例, 登录 stc 的官网 stoom to come 下载最新版本的烧路软件。 下载这个最新版的收录软件 我已经下载过了,直接打开就行了。 找到 q 仿真设置, 选择 q 的安装路径, s t c 芯片包就添加成功了。我们再来打开 q 软件 新建工程, 这里就出现了 s t c 的芯片包, 这里所有 s t c 的芯片就都包括了。 谢谢大家的观看,有什么问题请关注后留言。

哈喽,大家好,我是 dk 四五,专注于单片机嵌入式物联网技术的分享,那今天来给大家分享的一个知识点呢,就是 q 或者是叫做 mdk, 在调试的时候,我们如何查看 变量的值,因为前两天呢,有粉丝在后台给我留言,希望我讲一个这样的一个主题啊,那今天我就来给大家分享一下该如何操作,这个流程是怎么样的。 那既然是我们调试呢,就需要有板子对吧?你要有一块单面接的开发板或者是其他的可以 运行的一个板子啊,就是你上面有 mcu 或者是一个产品的板子啊,当然呢,除了这个板子以外呢,你还有一个烧路器,就是调试器啊,可以看到我这边的摄像头照出来的两个板子呢,就是右下角的这两个,这个绿色的呢,就是我的木 标版,这是我现在我做的一个 lowa 的开发版,上面是有一款 stm 三二的一个单片机啊,然后这个黑色呢就是我的一个调试器,当然这也是我自己做的一个啊,是一个 dapling 的调试器,当然如果你有 stling 可或者是 jling 都是可以的,因为他们的功能都是差不多的啊, 但是 dip 令可能因为它是一个开源的调制器啊,它的原代码我们是可以自己拿来去进行一个修改的, 所以在这里给大家普及一下,有这样一种就是开源的一个调试器啊,我们可以拿来去进行一个 diy 去修,根据自己想要的功能去修改啊,当然他也没有是版权费的, 我们可以随便去改。好,那接下来我们进入正题,我们来看一下在 mdk 的这个界面下该如何操作啊?好,这是我刚才已经打 开了一个调试界面,现在先把它关掉啊,这个程序呢是一个捞啊,已经已已经移植好的一个捞啊驱动的程序啊,就是这个程序实现的功能呢,是一个点对点的通信。那今天呢,我不重点呢,不是讲这个代码的运行流程,主要我们来看这个操作的步骤啊。 那先给大家说一下今天我们主要实现的一个实现的一个目的啊,就是说我们可以在调试的过程中查看这两个值啊,比如说这个康特这个技术的值,还有 radio, 我们如何来查看?好,那接下来我们先 编一下,看这个代码有没有问题,可以是编意通过。那接下来我们就点这个右上角这个 dbug 这个大写的 d, 不是大写的 d, 是一个红色的 d 这样的一个图标,然后点击它,这时候呢我们的这个板子就会进入到一个调试的状态,当然 mdk 的界面呢,也是一个调试的界面啊,调试的界面呢,下面我们可以看到几个窗口啊, 一个是第一个呢,是堆占的一个窗口,然后第二个是一个卧尺的窗口,这个卧尺窗口呢,就是我们用来查看全局的一些变量的,或者是全局的一些结构体啊,他的一个在调试过程中的一个值啊,然后还有个 merry, 这个 merry 可以干嘛呢?他是可以查看我们 你不管是 flash 啊,或者是内存当中里面的一个值啊,只用你在这里输入一个数据,那这个地址啊,然后他就可以查看那堆站呢,这个堆站的窗口是看什么呢?就比如说我, 我们运行在魅函数里面,这魅函数里面定义的有阿尔巴夫,还有一个 rl en, 那这两个都是全局的一个变量,对吧?那 他都是存在这个函数的一个堆占当中的,所以呢他就会显示在这个窗口里面,就是我们当前运行的这个函数他的堆占里面的一个内容啊。 好,那接下来我来给大家演示一下,我们来如何去先查看这个变量啊,变量呢,首先我们需要把它添加到卧室窗口里面,但如果你 有可能你下面这个卧室窗口没有直接显示出来,那我们来点这样的图标啊,你只用鼠标指到他,你可以就可以看到他这个名称啊,这个卧室窗口,这个戴眼镜的这个窗,这个图标啊, 我们点一下这下面的卧池就消失了,然后我们再点一下这个卧池,他就出来了啊,好,那接下来我们把我们的电电量的名称呢就添加到这里,我们只用直接把这个你想查看的这个变量名啊,把它复制一下, 然后双击这里,就可以把它添加进来,然后回车,回车呢可以看到他初始的直音啊,是一个零 x 零零零零。好,那我们再接下来把成语运行起来啊,运行起来我们可以看到他这个直是不是在不停的变化。 呃,我们来和程序里面对一下啊,我程序里面实现的功能呢,就是在这个媚,在媚的 viv 循环里面啊,他会不停的一个累计加加,当加到五百的时候,他就会重新归零,当然这里显示的是十六精致的值啊,所以你看不出来他是加到, 并且他变化的比较快,所以我们也不可能看到每一个变化的值啊,那我们如何来看到他呃每一步的变化呢?那我们就在这里设一个断点吧,就点击一下,点击下这里有 这个数字左边的这个区域啊,然后他就会程序呢,就会暂停,在这里,可以看到他现在是零一二七,对吧? 零二七呢,那我们继续把程序来运行一下啊,再继续转一下,转一下呢,他会跑到下一个断点,那因为我们是在这个 v 要循环里面呢, 那他肯定下一个循下一个运行的地方呢?还是这里还是会中断?在这里只是他进行了一个循环,可以看到他这个康泰的这台是不是加了一个一,然后我们再点一下运行啊,再点一下运行,他又加了一个一,所以呢在这个调试变量呢,在我们就是在有一些 程序 bug 很不容易发现的时候,就我们就想看一下一步一步他的运行状态,对吧?想看一下他这个变量的值到底该如何变化的,那我们就这样去把它添加到这个窗口里面,就这样一步一步的设一些断点,就来查看你这个变量的值,是非常方便的。 好,那同时呢,我们不光在这里可以添加变量的值啊,你一些就是你定义的 ui n t 八啊,或者十六,或者是三十二这些长量,这些长量,那个数值的一些尺啊,我们也可以看一些,就一些结构题啊, 就比如说我这个 radio 啊,这 radio 呢是定义的一个结构体类型的指针,我们同样是可以把它添加到这里的这种复制粘贴,然后回车,然后可以看到这个创口里面已经添加好了啊,添加好了可以看到我们结构体下面的一些。呃, 一些指针呢?他指向的一个地址啊,都可以看得到,对吧?因为这个结构题他下面是没有变量的,如果他下面还有一些数组呢,你都可以看得到数组里面的值的, 所以这个都是在我们调试中非常方便的。那有的小伙伴可能会想,如果我添加一个没有存在的一个名称呢,是不是也可以啊?那我们来试一下,就泰斯特一吧。这,我在韩叔在这个程序里面是没有定义我这个边量的,他也可以添加成功,但是呢,他会显示一个, 呃, cont, 后面这个我不知道怎么念啊,英语不太好意思,可能就是找不到的意思啊。 呃,但是它能添加成功,但是你又看不到它值,实际上是没有意义的,然后我们直接把它润目补就可以了啊。好,那添加变量的这个流程时间就很简单。好,接下来我们来看一下这个 memory 啊, memory 实际上也是一个比较有用的一个工,一个工具,就我们在调试的过程中,我们如果想看一下 ram 某个区域的一个地址啊,一个地址的数据啊,我们在这里输入地址就可以查看啊,当然你也可以也可以看 flash 里面的数据啊, 就比如说我们输零 x 八零零一二三四,这个是 s t m 三啊,大部分的单片机那个 flash 的一个起始地址啊,我们回车可以看到从零 x 八零零然后往下的数据呢,你都可以看得到啊, 这个就是 flash 里面地址的一个字啊。好,那接下来我们再可以再看一下 ram 里面呢, ram 我记得应该是二零零,然后一二三四。 ok, 现在呢,你也可以看到 ram 里面的数据啊, 就是每一个 ram 的地址啊,数据你都可以看得到的。这在我们程序调试的时候,有时候也是挺方便的啊,也是很有用的一个东西。这两个呢是我最常用的啊,还有这个,呃,堆占的这个我有时候也会用啊, 因为他可以看我们函数内部一个局部的变量的一个值吗?好,那今天呢,这个流程我就得给大家分享到这里,希望大家掌握这个调试的一个技巧啊。呃,当然, 前面问我的这个粉丝呢,可以重点来看一下这个视频啊。好,那今天就给大家分享到这里。好,谢谢大家。

假如一个循环有一千次,怎么在仿真中让程序在需要次数停下来?总不能用单步一次一次的跟踪吧,鼠标都受不了。可以多加一条判断语句,让循环到一定次数执行一条打印,方便设置一个断点。但今天和小伙伴们分享一个更便捷的方法,循环次数设置。