永发信息网

各位高手! 请指点 :我在学习 STM32 时遇到的问题:我的环境是 IAR ;

答案:2  悬赏:10  手机版
解决时间 2021-01-14 20:28
  • 提问者网友:遮云壑
  • 2021-01-14 11:21
各位高手! 请指点 :我在学习 STM32 时遇到的问题:我的环境是 IAR ;
最佳答案
  • 五星知识达人网友:山有枢
  • 2021-01-14 11:56
你先跳转到你用到RCC_PLLSource_HSE_Div1的地方,然后右击go to definition xxxxx,看看能不能找到该变量的定义吧。工程中要加入stm32f10x_rcc.c文件,而且在stm32f10x_conf.h(或是
stm32f10x.h依库版本而定)文件中将的注释去掉。
有时候后面提示的错误有可能是因为前面引起的。追问您好!很感谢您的帮助!

先跳转到你用到RCC_PLLSource_HSE_Div1的地方,然后右击go to definition xxxxx,看看能不能找到该变量的定义吧

试了,不能找到 该变量的定义,请问下一步该怎么 做? 谢谢!追答在stm32f10x_rcc.h文件中有这么一段定义:
#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_CL)

 #define RCC_PLLSource_HSE_Div1           ((uint32_t)0x00010000)
 #define RCC_PLLSource_HSE_Div2           ((uint32_t)0x00030000)
 #define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || 
                                   ((SOURCE) == RCC_PLLSource_HSE_Div1) || 
                                   ((SOURCE) == RCC_PLLSource_HSE_Div2))
这里采用的的是条件编译,如果条件满足,那么RCC_PLLSource_HSE_Div1  是会定义的,这里说明你的条件不满足,也就是说你没有定义所使用芯片的类型,比图STM32F10X_CL表示互联型,STM32F10X_LD表示大容量密度型的……
你要在stm32f10x.h文件中的条件编译部分根据你使用的芯片类型去掉相应的注释,比如我使用的是XL型的,则将#define STM32F10X_XL  的注释去掉,如下


#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) 
       
     
       
     
       
  #define STM32F10X_XL     
       
#endif
还有种办法就是如图所示:

在defined symbols处定义你使用的芯片类型。
全部回答
  • 1楼网友:青尢
  • 2021-01-14 13:13
关键是 问题2:Error while running C/C++ Compiler ,可能是你的软件没有完成注册,先查看一下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯