stm32如何调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32如何调试相关的知识,希望对你有一定的参考价值。

stm32如何调试

一、要有开发板(如果没有也要自己搭建一个)
二、安装好的开发环境(推荐MDK)
三、使用J LINK 方便调试,速度很快
四、通过MDK自带例程、一步一步调试
最好的就是,MDK自己文件和显示函数,你可以通过其中的PRINTF函数在串口调试助手上显示你需要看见的东西,用这个来核对你对程序认识的正确性!

补充:STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核(ST's product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform)[1] 。按内核架构分为不同产品

参考技术A 一、你要有开发板(如果没有你也要自己搭建一个)
二、安装好的开发环境(推荐MDK)
三、使用J LINK 方便调试,速度很快
四、通过MDK自带例程、一步一步调试
最好的就是,MDK自己文件和显示函数,你可以通过其中的PRINTF函数在串口调试助手上显示你需要看见的东西,用这个来核对你对程序认识的正确性!
参考技术B 可以用iar和st-link一起配合使用的啊,这个你可以参考万利公司的方案

如何解决使用keil下载或者调试程序是提示的“Invalid ROM Table”信息!

在将Discovery的工程移植到Mini-STM32F4x9BI开发板时,使用ULINK2下载程序可能会出现如下图所示的“Invalid ROM Table”这个错误。

技术分享图片技术分享图片

技术分享图片技术分享图片

可能原因是使用Mini-STM32F4x9BI开发板时(STM32F429BITx)外部晶振为25M,而使用Discovery的工程(STM32F429ZITx),其外部晶振为8M,晶振频率修改错误导致程序超频锁死了。因此除了将Option for Target选项里面的device修改成STM32F429BITx和做一些必要的其它修改,若程序第一次下载后导致芯片不能继续下载,该错误解决办法:  

1.先断电,把Discovery工程将stm32f4xx.h和system_stm32f4xx.c的晶振频率进行了修改,如下所示:

stm32f4xx.h:

技术分享图片

 

system_stm32f4xx.c:

技术分享图片技术分享图片

 

2.把BOOT0置1,BOOT1置0,keil配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Reset and Run前面的勾干掉,然后按复位键,再点击下载,下载程序进行芯片的擦除。恢复BOOT0接地。再把刚才修改过的Debug配置改回来,就可以正常使用了。目的就是一开始让芯片进入bootloader程序,此时就可以进行下载程序了。如果没有复位按键,那么就可以先将BOOT0接入高电平(默认BOOT0,BOOT1一般是通过电阻接低电平的,所以此时只需将BOOT0引出接入高电平),然后上电(相当于复位了),最后点击下载,当程序正在下载时就可以不接高电平了。

 

来源

 

以上是关于stm32如何调试的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C 中的 STM32 QEMU 调试器 eclipse 上从 RAM 内存执行函数?

如何使用串口来给STM32下载程序

如何配置 VS Code 以使用 cubeMX 构建和调试 STM32 项目 - Windows 10

如何将STM32的调试口设置为普通IO口

如何在使用 Segger J-link pro 和 Stm32cubeIDE 进行调试期间暂停看门狗计数器

如何在 stm32cubeide 中启动 GDB 服务器?