03.06 单片机程序怎么在电脑上调试?用什么软件好?

林家飞


单片机可以实现在线调试程序,通过软件设置断点,进行单步调试,这样可以看到单片机是如何一步步执行程序的,从而快速找到问题,解决问题。以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。

由于篇幅有限,无法详细描述,大家可以根据以上信息搜具体的教程。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。


玩转嵌入式


单片机程序常用的几种调试方法,这些调试方法都需要结合电脑上位机,以下我罗列一些调试方法:

1,串口调试助手。在没有仿真器或者没有单片机厂商仿真上位机时候最适合,单片机需要打开串口,然后调用内部库printf()函数,将调试信息通过串口打印出来。

2,仿真器+厂商仿真上位机。上位机仿真一般可以打断电,运行程序,查变量。进而分析单片机程序运行机制。

3,Proteus仿真软件。Proteus里面有许多单片机和外围供你学习编程仿真使用。

4,Visual c++6.0编译软件。一般单片机程序在VC++都是可以跑的,不过这款软件他没有单片机中的IO管脚,但可以用printf来代替IO管脚。

以上答复谢谢!


小武哥编程


KEIL C. 最好用串口当做调试数据通道,电脑上串口助手或自编软件。仿真那些看着高大上,其实不实用,因为单片机程序都很短,且都与硬件接口打交道,仿真真不了。


散居猎人


用KEIL编程,在需要观察数据的地方用串口发送数据。观察是否符你的逻辑需要。不过有些快速连续过程中间不能插入串口发送指令,否则过程被中断。那么就将数据存入数组,过程结束后再输出。


外汇策略聊


当然是mdk了,在线烧录直接仿真打断点看参数,很方便的上手还快