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

【求助】STM32cubeMX5.3.0生成工程出错

[复制链接]
darren_liu 提问时间:2019-10-26 16:36 /
RT
各位好,我新装的STM32cubeMX5.3.0,固件:STM32Cube FW——F1 V1.8.0 在生成工程时会报错。
../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c(116): error:  #268: declaration may not appear after executable statement in block

固件是软件自己下载安装的,按说不应该出错。

我的疑问是之前用过其他版本固件,没有报该错误。现在报这样的错误是不是固件的问题???发帖想跟各位求证一下。欢迎大家各抒己见。
收藏 评论4 发布时间:2019-10-26 16:36

举报

4个回答
哀歌与世无争 回答时间:2019-10-31 19:44:44
keil 勾选C99模式,变量可以再语句中定义,而不用再函数的开头。

QQ浏览器截图20191031194134.png

评分

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

查看全部评分

ldptest 回答时间:2019-10-28 12:00:40
度娘一下:

..\APP\app.c(51): error:  #268: declaration may not appear after executable statement in block
分析问题:
这个错误的原因是对于变量的声明不能放在可执行语句后面,必须在主函数开头声明变量。在程序中声明一个变量时,需要在可执行语句之前声明,否则会出现以上错误。

能否贴一下前后代码?
这是1.7.0版

前面有效代码
#include "stm32f1xx_hal.h"

#ifdef HAL_RCC_MODULE_ENABLED


下一行为116行
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef  *PeriphClkInit)
{
  uint32_t tickstart = 0U, temp_reg = 0U;
#if defined(STM32F105xC) || defined(STM32F107xC)
  uint32_t  pllactive = 0U;
#endif /* STM32F105xC || STM32F107xC */

  /* Check the parameters */
  assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection));

  /*------------------------------- RTC/LCD Configuration ------------------------*/
  if ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC))
  {
    /* check for RTC Parameters used to output RTCCLK */
    assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection));

    FlagStatus       pwrclkchanged = RESET;

    /* As soon as function is called to change RTC clock source, activation of the
       power domain is done. */
    /* Requires to enable write access to Backup Domain of necessary */
    if(__HAL_RCC_PWR_IS_CLK_DISABLED())
    {
    __HAL_RCC_PWR_CLK_ENABLE();
      pwrclkchanged = SET;
    }


今天下载1.8.0版
对比stm32f1xx_hal_rcc_ex.c(116)附近,与1.7.0版一致。


楼主还是从其他地方寻找问题点。

评分

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

查看全部评分

butterflyspring 回答时间:2019-10-31 15:52:19
用IAR 和 KEIL 对 1.8.0版本生成的工程编译都通过了哦

评分

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

查看全部评分

butterflyspring 回答时间:2019-11-4 11:10:15
确实是,同意楼上的高见。学习了。自动生成的项目已经勾选了C99 编译规则
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版