㈠ 单片机串口调试的方法(在keil中) 有人知道吗 求指点
需要你写程序的支持,想看哪个变量的变化,在程序的不同位置将这个变量放到串口中发出来,通过计算机接收,就能知道这个变量在程序中间的变化过程。也就是说在没有专用的调试器的时候,利用单片机自身的串口,通过对单片机的编程,将单片机程序运行的情况发送出来。
㈡ 单片机程序怎么在电脑上调试用什么软件好
单片机可以实现在线调试程序,通过软件设置断点,进行单步调试,这样可以看到单片机是如何一步步执行程序的,从而快速找到问题,解决问题。以Keil和IAR为例介绍一下单片机的在线调试。
1.keil
的在线调试功能
以STM32单片机为例,所需要的软件为Keil MDK,仿真工具为J-link,当程序编写完成后,编译通过,通过J-link仿真工具连接电脑和单片机板子,一定要安装好J-link的驱动,在Debug界面选择J-Link,并正确设置Setting界面的下的器件型号,如下图所示。
设置好后,点击工具栏的Debug按钮,就进入在线调试模式了,这时候会出现调试工具栏,如下图所示。
在怀疑有问题的地方设置断点后,运行单步调试,单片机就可以一步步的执行了,在watch窗口可以选择查看单片机的GPIO等寄存器,实时了解各端口和变量的变化情况。
2.IAR
的在线调试功能
以STM8单片机为例,以IAR for STM8为例,工具为ST-Link,正确安装好ST-Link的驱动,程序编译通过后,执行Debug and download按钮可以开启在线仿真模式,如下图所示。
在有问题的地方设置断点,执行全速运行后,会在断点处停下,可以执行单步调试功能进入函数,再一步步执行。
这样也可以很容易的找到程序bug。
3.使用串口打印进行调试
如果单片机不支持在线仿真功能,可以通过串口打印的形式输出调试信息。首先要把串口打印程序调试通,在有问题的地方通过给变量设置不同的值然后打印,这样也可以很直观的判断程序的运行情况。所需要的工具为USB/TTL。
由于篇幅有限,无法详细描述,大家可以根据以上信息搜具体的教程。
以上就是这个问题的回答,感谢留言、评论、转发。
更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。
㈢ 单片机调试的时候出错了 求大神
就这个程序而言,就纯在这几个错误,只要是有错误就无法编译成功
错误一、按键检测函数内,赋值语句被你写成判断语句了,如下图这里
解决办法是,将temp的变量声明语句移到函数外,使其成为全局变量
错误三、既然程序的前端有各个函数的定义部分,那就要吧主函数放在最上端,不需要经常修改的函数放在最下端,虽然这不是强制性的,但这是一个良好的编程习惯
先改正以上错误吧!
㈣ 单片机项目中使用新IC芯片调试方法
前两天,一位小伙伴咨询我一款新IC芯片怎么使用,借此机会我顺便把我日常工作中经常用到的一种调试方法介绍给小伙伴们,希望对对大家有所帮助。准备仓促,文中难免有技术性错误,欢迎大家给予指正,并给出好的建议...🤝🤝
我们在单片机的项目开发过程中经常会遇到使用新IC芯片的情况,某宝卖家有个时候也提供不了对应开发程序,到网上找资料也找不到;很多初学者面对这样的问题往往束手无策,这里我给大家介绍我经常用的其中一种新IC调试的方法。
因为这个芯片比较简单我这里采用下面步骤进行:
第一步: 先用arino+面包板快速搭建电路验证芯片功能
第二步: 使用STM32CubeIDE快速搭建工程验证在STM32上工作是否正常
Tips: 由于我手头没有 万用表 ,这里我使用 arino的模拟电压采集 功能通过串口打印出来作为电位计的 电压监控 用。
芯片模块的快速制作
在芯片商城上买了两片回来调试,芯片购买的费用小伙伴给付了
准备好芯片+转接板
焊接两块是为了防止在使用过程中意外弄坏另一块可以立马补上,确保调试正常进行而不耽误太多时间
这样我们的模块就制作完成了
说明: STM32使用的供电电压和数字电位计参考电压都是3V3,相应的输出结果也是在0~3V3范围
1、这里介绍了众多新IC芯片调试方式中的一种,后期有机会再陆续介绍其他IC或新模块的调试方法。
2、文中只是简单的对芯片进行功能测试,实际项目中还会有移植、驱动的可靠性、稳定性等测试工作 。
3、我们要善于运用手头的工具、arino等快速验证开发环境;模块的快速验证,特别是在项目开发过程中,时间就是金钱,对每一种工具的熟练掌握也是单片机开发过程中不可或缺的重要技能。
4、硬件调试与软件调试有很大的区别,很多时候是一次性,不可逆转的,不像软件Ctl+Z可以撤销;硬件在使用过程中出现意外损坏情况很正常:焊接不当、意外插错,静电防护不到位等等;我们要善于运用一些项目技巧,权衡时间或花费;这里之所以选择焊接两个芯片模块也是为了防止这种意外的发生而对调试造成不必要的时间耽搁。
㈤ 单片机调试 2K
1. 使用汇编语言,编写程序,2K的空间,编写个小程序,足够。
2. V2版的,网上能够搜到系列号,正确输入后,就变成了正版软件。
3. V3版的,网上能够搜到破解软件。
㈥ 单片机程序跑飞怎么去查找原因呢
对于简单的错误,如果能初步猜测到执行哪个函数后跑飞的,那就可以直接单步调试,看看什么原因,不外乎指针非法操作,数组越界之类的。
还有一种笨方法,注释函数,如果注释函数后bug不再现,那么就可以按照刚刚说的单步进去这个函数,看看有什么问题。
更有效的但是也对水平要求更高的方法可以看一下别人的方法。
下面是几个链接,可以看看,学习一下。
记一次STM32中HardFault问题的调试解决
如何找到导致程序出现HardFault
STM32硬件错误HardFault_Handler的处理方
定位产生HARD FAULT之前的代码
㈦ 单片机定时器不工作,以下是我写的。各位大虾请看下哪里出错误了 调试的时候定时器就一直不运行。
楼主你的程序在Keil U3和U4里执行是可以正常进入中断的。程序没问题。估计是KEIL的BUG。U2确实太古董了,换新版本的吧!
㈧ 51单片机串口接受字符串程序有bug,高手帮看看
看不出问题,不过建议你把程序先改成收到1234灯亮,5678灯灭,这样就便于查找原因了另外,我觉得应该把连续取数据放在主程序中
中断程序中用for循环不太好
中断程序中只计数和清标志位
RI=0;
table[i]=SBUF;
i++;
if (i==4)i=0;