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

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

[复制链接]
小刀十六式 提问时间:2016-8-25 14:11 /
我在配置Keil的Preprocessor Symbols 选项的时候没有进行预处理USE_STDPERIPH_DRIVER和STM32F10X_MD(如图1)

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

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


图1

图1

图2

图2

图3

图3

图4

图4
收藏 1 评论23 发布时间:2016-8-25 14:11

举报

23个回答
回答时间: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
把你工程上传一下
123下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版