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

【求助】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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版