小刀十六式 发表于 2016-8-25 14:11:03

关于KEIL创建工程中的一些问题???有点不明白!!!

我在配置Keil的Preprocessor Symbols 选项的时候没有进行预处理USE_STDPERIPH_DRIVER和STM32F10X_MD(如图1)

根据头文件应该不会引用stm32f10x_conf.h啊。可是为什么就引用了(如图2)

还有设备密度我也没选。我就添加了文件。也没进行宏定义(如图1、图3、图4)。为什么中断自己能找到中断入口呢???


发表于 2016-8-26 14:32:46

是我自己写的。测试一下哪个定义了。后面的是工程配置选项中。

发表于 2016-8-26 14:17:43

我用一下方法找到定义了STM32F10X_MD,对这个RTE不熟,找不到在哪儿定义的。_RTE_就是你现在用到的驱动。
#if defined (STM32F10X_LD)
        #error "STM32F10X_LD"
#endif

#if defined (STM32F10X_LD_VL)
        #error "STM32F10X_LD_VL"
#endif
#if defined (STM32F10X_MD)
        #error "STM32F10X_MD"
#endif
#if defined (STM32F10X_MD_VL)
        #error "STM32F10X_MD_VL"
#endif
#if defined (STM32F10X_HD)
        #error "STM32F10X_HD"
#endif
#if defined (STM32F10X_HD_VL)
        #error "STM32F10X_HD_VL"
#endif
#if defined (STM32F10X_XL)
        #error "STM32F10X_XL"
#endif
#if defined (STM32F10X_CL)
        #error "STM32F10X_CL"
#endif

发表于 2016-8-26 09:26:53

我只是举例说明,楼主可以看一下到底是哪个地方对这个进行的处理。

发表于 2016-8-25 14:34:39

楼主可以查看一下,如果没有定义,在其他的文件中也会做处理。
中断接口在.s文件中已经声明了。

小刀十六式 发表于 2016-8-25 14:51:16

安 发表于 2016-8-25 14:34
楼主可以查看一下,如果没有定义,在其他的文件中也会做处理。
中断接口在.s文件中已经声明了。 ...

找到了USE_STDPERIPH_DRIVER 的预处理。但是好像没有找到STM32F10X_MD的预处理。KEIL-5好像不用预处理STM32F10X_MD???KEIL4可不可以也不写STM32F10X_MD???

发表于 2016-8-25 14:52:29

有,楼主可以看一下10x.h文件。

小刀十六式 发表于 2016-8-25 15:29:16

安 发表于 2016-8-25 14:52
有,楼主可以看一下10x.h文件。

没找到#define STM32F10X_MD。。是stm32f103x.h吗?第几行啊?

发表于 2016-8-25 16:30:47

楼主看一下,仔细看开头的几行,我的版本可能和你的不一样。但是都有对应的处理的。默认的芯片类型等。比如下面的代码:

#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)
/* #define STM32F10X_LD */   /*!< STM32F10X_LD: STM32 Low density devices */
/* #define STM32F10X_LD_VL *//*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */
/* #define STM32F10X_MD */   /*!< STM32F10X_MD: STM32 Medium density devices */
/* #define STM32F10X_MD_VL *//*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */
/* #define STM32F10X_HD    *//*!< STM32F10X_HD: STM32 High density devices */
/* #define STM32F10X_HD_VL *//*!< STM32F10X_HD_VL: STM32 High density value line devices */
/* #define STM32F10X_XL */   /*!< STM32F10X_XL: STM32 XL-density devices */
/* #define STM32F10X_CL */   /*!< STM32F10X_CL: STM32 Connectivity line devices */
#endif

小刀十六式 发表于 2016-8-25 17:08:32

本帖最后由 小刀十六式 于 2016-8-25 17:16 编辑

安 发表于 2016-8-25 16:30
楼主看一下,仔细看开头的几行,我的版本可能和你的不一样。但是都有对应的处理的。默认的芯片类型等。比如 ...
嗯!#if !defined 预编译。假如STM32F10X的这些设备密度都没有定义就执行下面!可是下面都是注释掉的啊!
所以还是没有#defined STM32F10X_MD

小刀十六式 发表于 2016-8-26 10:53:48

安 发表于 2016-8-26 09:26
我只是举例说明,楼主可以看一下到底是哪个地方对这个进行的处理。

搜了一下。有宏定义的就只有你写的这里了。

/* #define STM32F10X_MD */   /*!< STM32F10X_MD: STM32 Medium density devices */

发表于 2016-8-26 10:56:49

把你工程上传一下
页: [1] 2 3
查看完整版本: 关于KEIL创建工程中的一些问题???有点不明白!!!