你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

自己新建工程keil5编译hal库无法生成STM32L0xx_hal_rcc_exe.o文件

[复制链接]
贫道5 提问时间:2018-3-14 14:20 /
自己在keil5上新建工程,用的是STM32L053R8单片机,编译之后报错,我找了很久才发现是无法生成STM32L0xx_hal_rcc_exe.o文件,别的库函数的.o文件都能正常生成,求解释,求解决。。。。。
收藏 评论17 发布时间:2018-3-14 14:20

举报

17个回答
Mandelbrot_Set 回答时间:2018-3-14 17:58:44
贫道5 发表于 2018-3-14 17:48
十分感谢,确实是这样,问题已解决,能给说一下,这是什么情况么,谢谢。。。。。 ...

C89 要求  FlagStatus  pwrclkchanged = RESET; 放在代码块开头

例如
void f()
{
int a;
a=a;
int b;
b++;
}
会报错。。。
详情baidu mdk c99

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

Mandelbrot_Set 回答时间:2018-3-14 16:58:39
贫道5 发表于 2018-3-14 15:13
已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候 ...

从error看,感觉须要 C/C++选项须要 --c99

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

贫道5 回答时间:2018-3-14 15:13:33
wenyangzeng 发表于 2018-3-14 14:46
MDK本身不带HAL库,需要加载STM32Cube_FW_F0_v1.xx库

到ST官方网站下载一个。

已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候,报错,..\Drivers\STM32L0xx_HAL_Driver\Src\stm32l0xx_hal_rcc_ex.c(148): error:  #268: declaration may not appear after executable statement in block
      FlagStatus       pwrclkchanged = RESET;
库文件是原封不动添加的,不会出问题,所以我看了一下工程的文件夹里缺少stm32l0xx_hal_rcc_ex.o文件,我从例程里面拷贝过来在编译就没问题了
wenyangzeng 回答时间:2018-3-14 14:46:29
本帖最后由 wenyangzeng 于 2018-3-14 14:47 编辑

MDK本身不带HAL库,需要加载STM32Cube_FW_F0_v1.xx库 无标题.png

到ST官方网站下载一个。



评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

贫道5 回答时间:2018-3-14 14:53:06
wenyangzeng 发表于 2018-3-14 14:46
MDK本身不带HAL库,需要加载STM32Cube_FW_F0_v1.xx库

到ST官方网站下载一个。

已经下载了官方的库,D:\无标题
贫道5 回答时间:2018-3-14 14:56:39
贫道5 发表于 2018-3-14 14:53
已经下载了官方的库,

已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候,报错,..\Drivers\STM32L0xx_HAL_Driver\Src\stm32l0xx_hal_rcc_ex.c(148): error:  #268: declaration may not appear after executable statement in block
      FlagStatus       pwrclkchanged = RESET;
库文件是原封不动添加的,不会出问题,所以我看了一下工程的文件夹里缺少stm32l0xx_hal_rcc_ex.o文件,我从例程里面拷贝过来在编译就没问题了
wenyangzeng 回答时间:2018-3-14 15:19:59
本帖最后由 wenyangzeng 于 2018-3-14 15:24 编辑
贫道5 发表于 2018-3-14 15:13
已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候 ...

declaration may not appear after executable statement in block
编译错误的提示是:“声明不能出现在可执行语句块后”。并非RCC文件出错,检查一下代码。
stm32l0xx_hal_rcc_ex.o并非指stm32l0xx_hal_rcc.c文件,而是编译后XXX.o文件。
贫道5 回答时间:2018-3-14 15:41:25
wenyangzeng 发表于 2018-3-14 15:19
declaration may not appear after executable statement in block
编译错误的提示是:“声明不能出现在可 ...

发遍的话,留个邮箱,我把新建的工程发给你,帮忙给看看可好
wenyangzeng 回答时间:2018-3-14 15:44:05
本帖最后由 wenyangzeng 于 2018-3-14 15:47 编辑
贫道5 发表于 2018-3-14 15:41
发遍的话,留个邮箱,我把新建的工程发给你,帮忙给看看可好

楼主可以以附件形式发在贴子了,大家共同讨论
其实STM32Cube_Fw库有一个样板工程,你直接在工程里添加代码不是很方便吗?免去那些没有必要的纠错过程。

贫道5 回答时间:2018-3-14 15:48:22
wenyangzeng 发表于 2018-3-14 15:44
楼主可以以附件形式发在贴子了,大家共同讨论
其实STM32Cube_Fw库有一个样板工程,你直接在工程里添加代码 ...

工程文件比较大,以附件的形式没法上传,我知道cube这个软件,也在用,但是自己新建工程我要是过不去,会非常不舒服。。。。。
七哥 回答时间:2018-3-14 16:01:32
贫道5 发表于 2018-3-14 15:48
工程文件比较大,以附件的形式没法上传,我知道cube这个软件,也在用,但是自己新建工程我要是过不去,会 ...

有啥不舒服的。
我用了Keil十多年了,都不轻易建工程。都是拿模板里添加点文件、删除点文件,改改设置,改改代码。

你不用传工程,把生成的.ioc文件传上来就可以了。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

贫道5 回答时间:2018-3-14 16:05:21
toofree 发表于 2018-3-14 16:01
有啥不舒服的。
我用了Keil十多年了,都不轻易建工程。都是拿模板里添加点文件、删除点文件,改改设置, ...

什么是.ioc文件,没见过啊,还请指点。。。
七哥 回答时间:2018-3-14 16:07:01
贫道5 发表于 2018-3-14 16:05
什么是.ioc文件,没见过啊,还请指点。。。

以为你用的STM32CubeMX生成的工程
贫道5 回答时间:2018-3-14 16:51:42
toofree 发表于 2018-3-14 16:07
以为你用的STM32CubeMX生成的工程

能帮忙看看我自己新建的工程的问题在什么地方么。。。。。这个问题已经困扰我很多天了。。。。
贫道5 回答时间:2018-3-14 17:48:22
Mandelbrot_Set 发表于 2018-3-14 16:58
从error看,感觉须要 C/C++选项须要 --c99

十分感谢,确实是这样,问题已解决,能给说一下,这是什么情况么,谢谢。。。。。
12下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版