【持续更新】STM32学习开发问题集锦

目录

1、MDK

(1)ISP方式下载问题

1)“芯片超时无应答,无法连接”

2)“开始连接到...,接收到:FE FE FE”

(2)烧录器使用问题(SWD方式通信)

1)“在MDK中Debug配置中没有检测到烧录器的信息”

2)“No target connected”

(3)MDK中pack包产生的相关问题

1)“Not a genuine ST Device! Abort connection”

2)“Loading PDSC Debug Description Failed”

3)“Debug仿真时System Viewer菜单显示空白”

(4)debug单步调试

1)“单步调试无法进入main()”

2)“单步调试无法进入空的for循环”

3)“Error: Encountered an improper argument”

(5)编译、链接与烧录

1)“keil5 MDK 中缺core_cm3.o 报错 ”

2、VSCode

(1)VSCode编译问题

1)“No such file or directory”


 

1、MDK

(1)ISP方式下载问题

1)“芯片超时无应答,无法连接”

原因

串口通信问题。

解决方法

1--如果采用的是“单片机+USB转TTL模块”的方式

A.检查串口uart连接否交叉相接(即单片机的tx接USB转TTL模块的rx,单片机的rx接USB转TTL模块的tx)

B.检查单片机上的BOOT0引脚是否已调到高电平位置

2--检查串口驱动安装是否正常,确保在设备管理器中能够看到所连接串口的COM口

3--检查ISP软件配置是否正确

包括串口号、波特率等,如果使用的是有“一键下载电路”,还需检查DTR与RST引脚的配置是否正确

 

2)“开始连接到...,接收到:FE FE FE”

 

原因

串口已通,接收到错误数据。

解决方法

1--如果采用的是“单片机+USB转TTL模块”的方式

A.按照上个问题的方法检查串口连接以及BOOT0引脚的问题

B.给单片机复位

每次通过ISP方式下载完程序后,需要对芯片进行复位,让芯片重新从ISP下载模式启动

(2)烧录器使用问题(SWD方式通信)

1)“在MDK中Debug配置中没有检测到烧录器的信息

原因

该问题主要是烧录器的驱动没有安装或者安装失败。

解决方法

1--软件驱动

A.确定烧录器本身的软件驱动是否安装正确,检查的方式有两种

一是如果驱动没有安装成功,烧录器上的指示灯会闪烁或者显示红色的指示灯,如果成功,则指示灯一般会绿色常亮

二是在设备管理器中进行查看信息,一般在“通用串行总线控制器”中,如果没有出现黄色的感叹号,表示驱动已经安装成功

B.如果烧录器驱动安装失败,通常尝试如下三种方式进行安装

一是安装驱动精灵等第三方软件,当烧录器接在PC端时,第三方软件会自动进行检测驱动,并提示进行安装

二是下载设备采购商提供的驱动软件,直接进行安装

三是利用MDK自带的烧录器驱动进行安装,其路径为

2)“No target connected

该问题主要是在MDK中配置烧录器出现的问题

原因

SWD口通信问题,导致MDK无法正常与烧录器连接。

解决方法

1--检查烧录器与单片机SWD口接线是否正确,尤其是swio口与swclk是否连接正确

2--检查是否因为之前使用的ISP下载,改变了BOOT0引脚的状态,烧录器下载与调试需要将BOOT0设为低电平

3--软件驱动

该部分方法同上

4--是否驱动版本问题

尝试利用所使用烧录器相应的软件,更新烧录器内部的驱动

5--供电问题

如果上述问题都确定无误,考虑是否因为烧录器本身的供电电压不足而导致,尝试换USB口或者是单独给烧录器供电

如果还不行,考虑重新换烧录器或开发板。

(3)MDK中pack包产生的相关问题

1)“Not a genuine ST Device! Abort connection

该问题主要是在通过烧录器下载程序出现的问题,该问题并不影响程序的正常烧录,只是MDK进行错误提示

 

原因

MDK检测到所使用的芯片可能不是正版的。

解决方法

1--检查MDK中Debug配置中,烧录器的连接方式是否正确

2--如果上述没有问题,考虑相应的pack包中注释相应的提示

编辑Keil.STM32F1xx_DFP.pdsc,注释涉及not a genuine的语句

2)“Loading PDSC Debug Description Failed

在MDK使用的过程中,MDK会提示如上相应的提示。

原因

STM32L0XX_DFP文件中的Message函数不能正确识别,可能和pack包本身的版本有关系

解决方法

编辑Keil.STM32F1xx_DFP.pdsc,注释涉及Message的语句

3)“Debug仿真时System Viewer菜单显示空白

原因

pack包配置问题

解决方法

设置System Viewer File文件,如下

(4)debug单步调试

1)“单步调试无法进入main()

原因

STM32程序的启动位置错误。

解决方法

1--检查BOOT0的引脚是否为低电平,确保STM32是从FLASH位置启动

2)“单步调试无法进入空的for循环

某同学学习stm32,通过for循环的方式实现时间延时,但是在单步调试中发现,for循环部分无法正常打断点,单步执行的时候也是直接跳过。

代码如下:

KEIL编译器C语言编译选项优化等级说明

0 Minimum optimization. Turns off most optimizations.It gives the best possible debug view and the lowest level of optimization.            

近乎不优化,用于调试代码。
1 Restrictedoptimization. Removes unused inline functions and unused static functions.Turns off optimizations that seriously degrade the debug view. Ifused with --debug, this option gives a satisfactorydebug view with good code density. 

部分优化,移除未调用的内联函数和静态函数,关闭debug窗口优化,此状态也能用于调试
2 Highoptimization. If used with--debug, the debug viewmight be less satisfactory because the mapping of object code tosource code is not always clear.This is the default optimization level.

默认优化等级。
3 Maximumoptimization.-O3 performs the same optimizationsas-O2 however the balance between space and timeoptimizations in the generated code is more heavily weighted towardsspace or time compared with-O2. That is:

  • -O3 -Otime aims to produce fastercode than-O2 -Otime, at the risk of increasingyour image size

  • -O3 -Ospace aims to produce smallercode than-O2 -Ospace, but performance might bedegraded.

In addition, -O3 performs extra optimizationsthat are more aggressive, such as:

  • High-levelscalar optimizations, including loop unrolling, for-O3-Otime. Thiscan give significant performance benefits at a small code size cost,but at the risk of a longer build time.

  • More aggressive inlining and automatic inliningfor-O3 -Otime.

KEIL编译器C语言编译选项优化等级设置不一样造成代码运行的效果完全不一样。

原因

被编译器优化。

解决方法

1--调整keil编译器优化等级为0等级

3)“Error: Encountered an improper argument”

在某些情况下,当您退出调试会话时,可能会显示一个错误对话框,提示“遇到不正确的参数”。 如果发生这种情况,μVision需要使用Windows任务管理器终止。 

原因

在STM32工程中路径、工程、文件夹、文件等名字中有keil无法兼容的字符。

解决方法

1--找到有非法字符的位置,然后进行更新。

(5)编译、链接与烧录

1)“keil5 MDK 中缺core_cm3.o 报错 

mac中安装win10虚拟机,在MDK中移植ST公司标准库,会遇到此问题。

原因

keil本身存在的bug问题,与自己使用的系统有问题。

解决方法

1--安装最新版本

2、VSCode

(1)VSCode编译问题

1)“No such file or directory

原因

编辑器没有找到相应文件

解决方法

1--检查路径、文件权限以及文件名中是否有空格

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值