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 固件是软件自己下载安装的,按说不应该出错。 我的疑问是之前用过其他版本固件,没有报该错误。现在报这样的错误是不是固件的问题???发帖想跟各位求证一下。欢迎大家各抒己见。 |
评分
查看全部评分
..\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版一致。
楼主还是从其他地方寻找问题点。
评分
查看全部评分
评分
查看全部评分