关于“#define STM32F4XX”

2019-07-20 23:23发布

我看到stm32f4xx.h中已经有 #define STM32F4XX    STM32F40XX 为什么在编译器设置里还要在 keil中options->C++->Define中定义 USE_STDPERIPH_DRIVER,STM32F4XX? 一旦定义后会出现重复定义的错误,如下  D:ARMPROKEILARMIncSTSTM32F4xxstm32f4xx.h(74): warning:  #47-D: incompatible redefinition of macro "STM32F4XX"     定义USE_STDPERIPH_DRIVER是为了使用conf.h文件, 这个在stm32f4xx.h可以看出来 #ifdef USE_STDPERIPH_DRIVER
  #include "stm32f4xx_conf.h"
#endif /* USE_STDPERIPH_DRIVER */ 那么STM32F4XX定义的目的是什么?在哪个文件中有相关代码? 如果是为了什么类似的目的而定义,那么#define STM32F4XX    STM32F40XX这个定义本身就可以触发#ifdef,意义何在? 菜鸟表示没找到定义它的理由?难道F4跟以前有区别?                                         
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
正点原子
1楼-- · 2019-07-21 04:57
不需要你在keil中options->C++->Define中定义  STM32F4XX 了。
小笨蛋
2楼-- · 2019-07-21 08:27
回复【2楼】正点原子:

不需要你在keil中options->C++->Define中定义  STM32F4XX 了。

---------------------------------
谢谢,论坛中针对F4的资料较少,原子哥有这方面开发的打算不?
正点原子
3楼-- · 2019-07-21 08:29
 精彩回答 2  元偷偷看……
pizhihui1993
4楼-- · 2019-07-21 12:54
回复【4楼】正点原子:
---------------------------------
/* Old STM32F40XX definition, maintained for legacy purpose */
#ifdef STM32F40XX
  #define STM32F40_41xxx
#endif /* STM32F40XX */

/* Old STM32F427X definition, maintained for legacy purpose */
#ifdef STM32F427X
  #define STM32F427_437xx
#endif /* STM32F427X */


stm32f4xx.h中有了这段定义,而stm32f10x.h中没有,所以f4的就不用添加,但是f1的要添加,原子大哥,我说的对吗?
哦,还有这是1.3.0的库,原子大哥,你用的多少的库啊?f4的那个版本的库好使啊,就像f1的3.5的库,已经流行很久了。
正点原子
5楼-- · 2019-07-21 16:53
回复【5楼】pizhihui1993:
---------------------------------
F4我没用库函数啊。。。
pizhihui1993
6楼-- · 2019-07-21 21:41
 精彩回答 2  元偷偷看……

一周热门 更多>