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

自己新建工程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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版