stm32报错问题集锦

PS:本文负责记录本人日常遇到的报错问题,以及问题描述、原因以及解决办法等,解决办法百分百亲测有效。本篇会不定期更新,更新频率就看遇到的问题多不多了······

最小系统板串口烧录失败

问题描述

        使用CH340配合串口下载助手下载不了,按复位也没用。

原因

        主要有以下几点(推荐大家先检查硬件):

        (1)CH340和最小系统板引脚连接错误;

        (2)程序的串口(USART)配置有问题。

        (3)跳线帽需要重新装。

解决方法

        (1)对照引脚图,检查USB转串口模块和串口引脚连接:

                        CH340                                stm32

                         TXD                                    RXD(PA9)

                         RXD                                   TXD(PA10)

                我一般是这么连的,连在USART1上,也可以连在其他串口上。

        (2) 检查程序的串口引脚配置;

        (3)使用串口下载程序需要将BOOT0接到1,BOOT1接到0,即如下图所示:

        其次需要注意的是将如下这个地方改成这个选项:

        这个选项不一定非要这个,视自己情况去酌情修改即可。

        (4)补充一下,如果串口助手打印不出东西且程序没有逻辑错误,程序也可以烧录进去,可以将BOOT0跳线帽拔掉(反正我是遇到过这种情况)。

更换工程的芯片型号报错

问题描述

        例程最开始用的芯片型号是STM32F103VE,但改成STM32F103C8之后进行程序下载,发生报错问题如下:

原因

        上图显示的报错是ADC的中断相关部分出了问题,但实际上这个报错的原因是不同型号的芯片之间,他们的FLASH即闪存大小不同导致的。

解决办法

        这个问题解决起来很简单,我们只需要将本来的.s启动文件换成符合我们所使用芯片的FLASH大小即可。启动文件路径在工程目录下的这个路径里:

\Libraries\CMSIS\startup

低容量:16KB 、32KB   ,选择 startup_stm32f10x_ld.s 或 startup_stm32f10x_ld_vl.s
中容量 :64KB、128KB ,选择 startup_stm32f10x_md.s 或 startup_stm32f10x_md_vl.s
高容量: 256KB及以上  , 选择 startup_stm32f10x_hd.s 或 startup_stm32f10x_hd_vl.s

        因为STM32F103C8的FLASH是64KB,所以我们需要将名字带ld的启动文件加入startup中;而STM32F103VE的FLASH在128到256之间,所以最开始的启动文件是带hd的。

需要注意的是,添加完成后,我们需要把之前的.s启动文件从工程中移除,否则会出现如下报错:

        最后,我们需要在魔术棒的c++中,将预编译的宏改动,以本人为例的话就是将HD改成MD,效果如下:

xxx.axf: Error: L6200E: Symbol XXX multiply defined (by xxx.o ).

问题描述

        编译时报错如下:

原因

        这种情况一般就是对某个变量或者宏进行了重复定义。

解决办法

        像我这种情况,就是 ADC_ConvertedValue 这个宏进行了重定义,根据提示这个定义出现在adc.cmain.c中。这里我选择在main.c中的宏定义前加extern进行扩展声明。

        如果找到这个重定义的宏比较困难,可以Ctrl + F查找,之间定位到宏所在位置。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值