最近在研究STM32F103,遇到了很多问题,调试了很多次。我想很多高手都可以很好地使用调试方法,但是对于像我这样的初学者来说很重要我会解释一下。一些要点。相见已晚。让我们分享,以便我们共同前进。
资金有限,一直在利用之前的51开发板和一块stm32核心板的板载资源根据网上视频课程学习GPIO控制、跑灯、时钟设置等操作时出现了中断的问题。程序使用按钮作为外部中断来控制LED的亮灭。按照视频一步一步写完程序后,发现按下按钮并没有相应的效果。在Keil的Debug中一步步运行得很好。经过一番研究,问题得到解决。这里我们将向您展示如何调试串口打印。
是修复前的中断服务函数,不过似乎是在使用串口打印printf()时才发现问题。
添加这两条语句将在每次中断发生时打印n 的值。我发现一个问题,当我用电脑的串口打印助手观察n的变化时,n的输出发生了变化。通过改变延迟时间,输出几乎变成偶数,因此我们解决了每次按下按钮时多次激活中断功能,导致LED变化变得不稳定的问题。我解决了它,但后来我使用我创建的按钮电路板来替换原来的按钮电路来运行程序,所以我发现问题出在板子上。事实证明,问题出在板上的按钮上。
我个人认为遇到这种问题还是比较困难的,但是通过这个问题,很多高手可能已经掌握了这个方法,如果不是我偶然在网上看到这个方法,我就学会了这个调试方法。很有用。嗯,自己思考确实很难。这里有一些重要的要点需要注意。
1
printf函数在STM32中使用,必须“重定向”到自己的串口。
2
编译Keil 时,必须在Keil 选项卡中勾选MicroLIB 选项。如果不勾选此项,编译时不会报错,但运行程序时就会出现问题。
3
printf函数是C语言的标准函数,因此使用printf函数时,必须在头文件中包含头文件“stdio.h”。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。