野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 30939|回复: 17

刚开始学stm32,可是新建固件库总是有错误,求支援,呜呜呜

[复制链接]
发表于 2020-8-12 01:19:40 | 显示全部楼层 |阅读模式
刚开始学stm32,可是新建固件库总是有错误,求支援,呜呜呜~~

今天,开始学习stm32f429IGT6,但是在新建固件库这里卡住了,总是有错误,但自己找不出来,已经找了一下午了一直到现在,没办法了,希望大家可以帮帮我,在这里先谢谢大家了,鞠躬~~~
下面我概述下我是怎么做的:

1、为了不出错,我是按照老师讲的一步一步暂停的做的;
2、来回做了一下午,后来又观看《stm32库开发实战指南》,我是实体书,又做了好几遍,但是结果差强人意;
3、我知道这个问题很幼稚,所以如果可以自己解决就自己解决,可是真的不行,自己也不知道错在哪里,所以来找大家帮忙;
4、我的版本是MDK531,一开始是c51何mdk531装在一起的,但我卸载后只安装MDK531,结果还是不行如图;

5、步骤分析:
一:按照视频,暂停一步步的添加好文件后,第一次编译时,视频错误为43个。但我的错误为46个;
二:解决fsmc问题;
三:解决头文件包含问题;
四:解决USE_STDPERIPH_DRIVER,STM32F429_439xx,的问题;
五:解决删掉stm32f4xx_it.c里的问题;
六:最后编译结果为".\Objects\YH-429.axf" - 45 Error(s), 120 Warning(s).

6、我是真的没有办法了,求大家教教我,呜呜呜~~~
7、我的出错的源文件:https://www.firebbs.cn/forum.php?mod=attachment&aid=Mjc0NTJ8NDU2ZDg4ZDEwMTYzNzljYzRmMzJiZmU4ZmMwZmJjOWJ8MTczMjQ5ODA2Nw%3D%3D&request=yes&_f=.zip


回复

使用道具 举报

 楼主| 发表于 2020-8-12 02:56:31 | 显示全部楼层
我就是按照这样做的,但结果还是错误
1.新建一个工程模板文件夹。

2.新建一个keil工程,选择目标芯片。

3.指定文件夹以及编译路径。

4.将标准库文件夹中的内容分别放入刚刚新建的几个文件夹中。将库文件的路径中的文件(...\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries)copy到刚新建的[Libraris]文件夹中。然后分别只留下如下图中的文件或文件夹即可。

将库文件路径(…\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates)中的几个文件copy到刚新建的[USER]文件夹下,其中main.c与main.h两个文件可以自己新建。如下图所示:

5.在keil的工程下,通过Add Group选项添加如下几个分组。

・STARTUP:存放汇编文件的启动文件,startup_stm32f429_439xx.s

・CMSIS:M4的系统外设相关文件(system_stm32f4xx.c)

・STM32F4xx_StdPeriph_Driver:外设相关的库文件

・USER:用户编写的文件(main.c),以及与中断相关的服务函数文件(stm32f4xx_it.c)

・DOC:用户的说明文档。

6.添加编译路径,主要目的是把头文件都包含进来;
7.添加两个宏定义USE_STDPERIPH_DRIVER(使用标准库)、STM32F429_439xx(因为使用的芯片为F429)。中间用逗号隔开;

8.因为F429中的FMC是包含FSMC的,所以禁止stm32f4xx_fsmc.c文件编译;

9.将文件stm32f4xx_it.c的line32与line144行内容去掉;
结果还是错误".\Objects\YH-429.axf" - 45 Error(s), 120 Warning(s).。

回复 支持 反对

使用道具 举报

发表于 2020-8-12 15:40:13 | 显示全部楼层
1.其中main.c与main.h两个文件可以自己新建(不用键main.h,也不用添加)文件,
2.头文件,也就是.h文件要添加路径
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-12 15:46:47 | 显示全部楼层
yhpzy 发表于 2020-8-12 15:40
1.其中main.c与main.h两个文件可以自己新建(不用键main.h,也不用添加)文件,
2.头文件,也就是.h文件要 ...

我添加了,但还是错误,有什么办法解决吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-12 16:36:54 | 显示全部楼层
经过一天一夜的实验,建立了无数的文件,反反复复的实验对比后,终于找到46个错误的解决方法,分享出来,希望和我遇到相同问题的同学可以快速的解决问题啦!
1、由于我看不太懂英文,也不怎么会keil软件,所以只能一个一个选项的改,下面有我的解决方案,但我自己不懂为什么要这样做,希望有大佬解释一下,谢谢啦~

解决方法:
1:严格按照老师的视频,保证没有错误!!!(已在楼上说明方法)
2:由于keil的版本不一样(我猜的),所以第一步完成后要改一下“魔术棒”里的配置;如图;
①:打开“Option for Target”(就是魔术棒)
②:在“Target”-->"Code Generation"-->"ARM Compiler"-->选择"V5.06 update 6(build 750)"
3:完成了,但我不知道为什么,求大佬解释下,蟹蟹~
回复 支持 反对

使用道具 举报

发表于 2020-8-12 16:40:43 | 显示全部楼层
工程发上来 别人才能看哪错了呀   
没有工程 大家靠猜?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-12 16:51:15 | 显示全部楼层
wwhh 发表于 2020-8-12 16:40
工程发上来 别人才能看哪错了呀   
没有工程 大家靠猜?

有的呀,在一楼有一个链接,点一下就可下载
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-13 17:17:04 | 显示全部楼层




又做了一次实验
发现


解决方法:
1:严格按照老师的视频,保证没有错误!!!(已在楼上说明方法)
2:由于keil的版本不一样(我猜的),所以第一步完成后要改一下“魔术棒”里的配置;如图;
①:打开“Option for Target”(就是魔术棒)
②:在“Target”-->"Code Generation"-->"ARM Compiler"-->选择"V5.06 update 6(build 750)",这个选项只要不选"V6.14"或与6相关的选项都是不会报错哒~
3:完成了,但我不知道为什么,求大佬解释下,蟹蟹~



回复 支持 反对

使用道具 举报

发表于 2020-8-16 09:37:02 | 显示全部楼层
谢谢你,我也出现了跟你一样的问题,看了你的解决方法之后我的问题也解决了,就是不知道为什么哈哈。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-17 18:03:40 | 显示全部楼层
至臻001 发表于 2020-8-16 09:37
谢谢你,我也出现了跟你一样的问题,看了你的解决方法之后我的问题也解决了,就是不知道为什么哈哈。 ...

不客气,可以帮到你我也很开心,一起加油鸭!最近手机掉水里了,电脑被雷劈了,所以没上线,呜呜呜~
回复 支持 反对

使用道具 举报

发表于 2020-8-18 14:54:11 | 显示全部楼层
一:按照视频安徽快3,暂停一步步的添加好文件后,第一次编译时,视频错误为43个。但我的错误为46个;
二:解决fsmc问题;
三:解决头文件包含幸运飞艇问题;
四:解决USE_STDPERIPH_DRIVER,STM32F429_439xx,的问题;
五:解决删掉stm32f4xx_it.c里的问题;
六:最后编译台湾今彩539 结果为".\Objects\YH-429.axf" - 45 Error(s), 120 Warning(s).
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-18 17:50:03 | 显示全部楼层
Amelinda 发表于 2020-8-18 14:54
一:按照视频安徽快3,暂停一步步的添加好文件后,第一次编译时,视频错误为43个。但我的错误 ...

按照我楼上的方法就好了
回复 支持 反对

使用道具 举报

发表于 2020-8-19 11:35:30 | 显示全部楼层
!!!!感谢你!!!太感动了,百度了半小时都找不到解决办法,照着你说得方法解决了!没有错误!想哭
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-19 22:18:00 | 显示全部楼层
ycll 发表于 2020-8-19 11:35
!!!!感谢你!!!太感动了,百度了半小时都找不到解决办法,照着你说得方法解决了!没有错误!想哭: ...

一起进步鸭~~~~~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2020-8-20 09:17:35 | 显示全部楼层
为什么要在魔术棒里面选择V5,那是因为KEIL更新了V6编译器,编译更快,但里面的指令与V5有些不直接兼容,以前的固件库支持V5,所以需要重新移植更新的指令,才能在V6上编译成功。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-21 01:56:43 | 显示全部楼层
Tang_l 发表于 2020-8-20 09:17
为什么要在魔术棒里面选择V5,那是因为KEIL更新了V6编译器,编译更快,但里面的指令与V5有些不直接兼容,以 ...

哦哦哦,原来是这样呀,请问V5是编译器的版本吗?
回复 支持 反对

使用道具 举报

发表于 2020-9-18 13:57:17 | 显示全部楼层
编译器的问题
回复 支持 反对

使用道具 举报

发表于 2020-9-18 16:29:17 | 显示全部楼层
我5年前就开始用ARM专用的MDK5.18,没有想到你们学校现在还在用MDK531。
1.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 09:27 , Processed in 0.032836 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表