
两个STM32开发中基于MDK IDE的调试输出技巧 我们在STM32开发调试过程中,常常需要做些直观的输出,如果手头没有相关的设备或仪器,我们可以使用 IDE自带的工具。这里分享两个基于MDK IDE的调试输出技巧。 一、使用其自带的逻辑分析仪查看波形。 比方我们需要查看STM32定时器的PWM输出,手头又没有示波器或逻辑分析仪, 尤其学生族。我们可以用MDK自带的逻辑分析仪来察看结果。 假设基于某一款STM32F4芯片,输出一个脉宽为100us,占空比为40%的波形。使用TIM3的通道1输出PWM波形,用到GPIOA_6,即PA6. STM32定时器的参数配置我这里就省略了。我开启定时器的比较中断和更新中断,在中断里将PA口的IDR值读到一个全局变量TIM3_CH1_OUT里。 下面主要介绍跟LA[逻辑分析仪缩写]有关的配置: 1、 ![]() 2、 ![]() 3、联机进入调试状态,进一步配置: ![]() 4、运行看结果: ![]() ![]() 结果出来了,比较直观,也具备较好的测量能力。比一般的示波器不会差。 二、使用调试工具自带的SWO功能做printf输出 我们在调试过程中往往需要做些printf输出,通常使用UART实现。顺便用下倒还好,不然得单独配置出UART,PC端需装应用软件和win驱动,还得辅以额外的硬件。 其实,我们很多时候可能通过SWO方式做输出就好,只要芯片和调试器支持。 SWO,serial wire output ,一种异步串行通信通道。目前基于Cortex M3,M4,M7内核芯片都支持。通过配置寄存器DBGMCU_CR里的TRACE_IOEN和TRACE_MODE来启用。当然用CUBEMX配置生成初始化代码就更简单了。像下面这样: ![]() 跟MDK有关的配置: 1、 ![]() 2、进入调试状态,点击View/SerialWindows/Debug(printf)Viewer ![]() 3、用户代码里添加:
4、运行看结果: ![]() OK,分享上面两个比较实用的调试输出技巧,希望对您有帮助。 文章出处: 茶话MCU |
实用 |