OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 64449|回复: 41

include和#include有什么不同,什么时候用哪个,详细点?

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-3-29
在线时间
0 小时
发表于 2014-3-29 18:31:55 | 显示全部楼层 |阅读模式
#include<stm32f10x_lib.h>和#include<stm32f10x.h>有什么不同,什么时候用哪个,详细点,服务态度也太差了,问两个问题爱说不说,就是不懂才问啊,懂了还问你吗

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-3-29 19:47:38 | 显示全部楼层
楼主典型的一人爽歪歪,别人累半死。
重复性的问题,如果10个人问,我要回答10次,1000个人问,我要回答1000次。
如果论坛问了,我发帖子给提问者,不就OK了么?
我要你论坛提问的目的就在这里,个中关系请看此帖:http://www.openedv.com/posts/list/657.htm

楼主问了很多很简单的问题:比如,如何在MDK下,打开一个头文件,楼主不知道(PS:我们教程教了的,见《不完全手册V2.3》第83页)。
比如,README在哪里,找不到,不会找。
其他一些电路基础问题,我就不说了。

我认为这些问题,你应该自己知道找答案,然后,好不容易问了一个有点共性的问题,让楼主来论坛发个帖子,方便别的初学者了解,很明显,楼主貌似很不情愿。

好了,说问题。
#include<stm32f10x_lib.h>和#include<stm32f10x.h>的区别,这确实是个好问题,所以在这里好好解答一下。
首先,我们看#include<stm32f10x_lib.h>这个头文件。
#include<stm32f10x_lib.h>是ST公司V2.0的库函数使用的头文件,用MDK3.80A,打开Mini板例程-扩展实验1 自定义汉字显示实验,如图1所示:


图1 stm32f10x_lib.h
只要你善于观察,这个图片,告诉我们好几个信息了:
1,文件的路径,也就是stm32f10x_lib.h,到底是在哪个位置,在图中1处就告诉你了。
2,文件的版本,图中2处,说明了,这是V2.0.1版本。
3,该文件包含的一些内容,也就是图中3处的内容。

图1,我们是用MDK3.80A打开的Mini板例程,因为MDK3.80A自带了这些头文件,所以可以打开。
但是,如果你用MDK4.7/MDK5打开,就没法找到了,这也就是为什么,我们老版本的例程,存在高版本的MDK编译的时候,报找不到stm32f10x_lib.h的错误的原因了。
而stm32f10x_lib.h里面,我们经过分析,实际可以用:stm32f10x_map.h和stm32f10x_nvic.h来替代,所以新版本的Mini板例程,都是用这两个替代stm32f10x_lib.h了,而
为了避免不同编译器,可能不会带这两个文件,而报错的问题,我们将这些相关头文件统一拷贝到了例程\SYSTEM\sys文件夹下,如图2所示:


图2 SYSTEM\SYS 文件夹里面的内容


所以,Mini板的最新例程,都是可以在MDK个版本下直接编译的。
新例程下载地址:http://www.openedv.com/posts/list/13912.htm

接下来我们再说说:#include<stm32f10x.h>这个头文件。
#include<stm32f10x.h>是ST公司V3.5及以后版本统一使用的库函数头文件了,说白了就是把原来的stm32f10x_lib.h,换成了#include<stm32f10x.h>,规范了代码,不需要包含那么多的头文件了。
这里打开战舰板,寄存器例程-按键实验。
如图3所示:


图3 stm32f10x.h
这是我们用MDK5.10打开战舰板寄存器例程,按键实验,查看stm32f10x.h的内容,对比图1,应该看出些区别了。
MDK5界面大改,这里不多说,关键没法查看stm32f10x.h的路径了,不知道放在哪里。。。
怎么办呢?
俗话说,上天给人关闭一扇门的时候,一定会为他开启另外一扇门,你把鼠标,放到stm32f10x.h选项卡上,然后右键,是不是弹出了一个小窗口?如图4所示:


图4 拷贝全路径&打开包含文件夹
以上两个划红线的,大家自己试试,就知道什么情况了,我就不多说了。
同样,图3中,也告诉你stm32f10x.h的版本了。
另外,如何查看某个.c文件,包含了哪些头文件,见图3中3处的方法,点击.c文件前面的+号标记,就可以展开其包含的头文件了。
但是很多网友会问,明明我的delay.c只包含了#include "delay.h",怎么会包含这么多呢?
答案就是:头文件可以层层包含的...  A包含B,B包含C,C包含D,D包含E,E包含F...
那么只要你包含了A,那么B,C,D,E,F,就都是会包含进来的。。。

同样,为了兼容不同版本的MDK,以避免MDK不自带头文件,带来的错误,我们将:stm32f10x.h和system_stm32f10x.h拷贝到了SYSTEM\SYS 文件夹下,这里大家查看战舰板最新例程就可以知道。

最后,再总结下:
1,stm32f10x_lib.h是2.0的ST库函数头文件,在我们开发板老版本的寄存器版本例程上面有用到,新版本例程一律没用了。
2,stm32f10x.h,是3.5的ST库函数头文件,在战舰板新版本例程,全部使用这个头文件了。
3,为了兼容不同的MDK版本,我们将这些所需的头文件,一律拷贝到了工程\SYSTEM\sys 文件夹了。































我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-10-22
在线时间
0 小时
发表于 2014-4-3 20:37:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥啊!那是不是可以这样理解:寄存器版本和库函数3.5以前的版本用#include "stm32f10x_lib.h"或者#include <stm32f10x_map.h>+#include <stm32f10x_nvic.h>,而库函数3.5及以后的版本用#include "stm32f10x.h"
回复 支持 反对

使用道具 举报

13

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2013-12-12
在线时间
13 小时
发表于 2014-4-3 22:24:05 | 显示全部楼层
好帖,顶一个!!
回复 支持 反对

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2014-4-3 23:01:43 | 显示全部楼层
顶起
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-3 23:38:50 | 显示全部楼层
回复【3楼】469219945:
---------------------------------
是的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-10-22
在线时间
0 小时
发表于 2014-4-4 14:23:18 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
我有个问题,想发个贴,为什么发不了啊?
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-9-3
在线时间
3 小时
发表于 2014-4-4 16:25:34 | 显示全部楼层
好帖子 顶一下  学习了 mark
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-4 22:03:15 | 显示全部楼层
回复【7楼】469219945:
---------------------------------
点击发表主题,就可以啊
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2014-4-24
在线时间
0 小时
发表于 2014-4-27 21:03:23 | 显示全部楼层
好帖   顶起
回复 支持 反对

使用道具 举报

12

主题

87

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-4-2
在线时间
0 小时
发表于 2014-5-25 16:04:20 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
stm32f10x_conf,it,marco,type这4个文件和map,nvic作用一样吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-26 00:30:36 | 显示全部楼层
回复【11楼】chengmingluo:
---------------------------------
不一样。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-3-24
在线时间
0 小时
发表于 2014-6-19 09:46:02 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
了然,谢谢原子哥
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-4-5
在线时间
0 小时
发表于 2014-7-20 21:51:39 | 显示全部楼层
了解了   不错
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-10-5
在线时间
1 小时
发表于 2014-10-5 16:35:09 | 显示全部楼层
太感谢了,真是太好了,感谢原子哥
回复 支持 反对

使用道具 举报

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-17
在线时间
0 小时
发表于 2014-10-5 21:40:52 | 显示全部楼层
............
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2014-8-27
在线时间
12 小时
发表于 2014-10-19 10:52:00 | 显示全部楼层
原子哥,  #include "stm32f10x.h"与#include "stm32f10x_lib.h"怎样移植???
看向明天
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-19 23:27:18 | 显示全部楼层
回复【17楼】图灵信念:
---------------------------------
两者选其一。推荐前者。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2014-6-6
在线时间
47 小时
发表于 2014-11-28 18:02:59 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2015-1-20
在线时间
0 小时
发表于 2015-1-21 10:34:33 | 显示全部楼层
太感谢了,真是太好了,感谢原子哥
没有最好只有更好
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-3-18 12:13:54 | 显示全部楼层
非常感谢,问题解决
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2015-3-7
在线时间
0 小时
发表于 2015-4-21 17:31:43 | 显示全部楼层
困扰很长时间问题解决,很高兴,非常好!
请教各位大侠:在7寸屏上做内部Flash实验 把7寸屏的gt811.c ctiic.c 添加HARDWARE组,blcd.c替换原先的ILI93XX.C,在blcd.c文件里加了void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height)函数,这个函数没修改,也不会修改,编译下载后,字符能正常显示,而图片显示乱七八糟。请教怎么修改?
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-4-29
在线时间
0 小时
发表于 2015-5-4 13:52:31 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥。已经拷贝全路径了啊,可是用MDK5.1编译战舰的例程还是会报错啊。能再详细点解释么。。
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-4-29
在线时间
0 小时
发表于 2015-5-4 13:59:40 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
用MDK5.1打开的时候的提示是,..\SYSTEM\delay\delay.h(3): error:  #5: cannot open source input file "stm32f10x_map.h": No such file or directory。
但是已经把这个文件放在头文件里了啊。。。好纠结啊。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-5 00:00:03 | 显示全部楼层
回复【24楼】goldtime4:
---------------------------------
现在已经不用这个头文件了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-4-29
在线时间
0 小时
发表于 2015-5-5 15:46:04 | 显示全部楼层
回复【25楼】正点原子:
---------------------------------
那用哪个啊原子哥。。。每次都是这样一堆错误,真是新手,您给说个详细的解决方案呗,跪谢了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-5 16:44:51 | 显示全部楼层
回复【26楼】goldtime4:
---------------------------------
stm32f10x.h
具体的,参考我们开发板的最新例程。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
发表于 2015-5-25 08:49:55 | 显示全部楼层
好帖。。。mark
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-5-14
在线时间
36 小时
发表于 2015-7-27 16:27:22 | 显示全部楼层
好贴。。。。。。。。。
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2015-4-4
在线时间
2 小时
发表于 2015-7-28 22:19:24 | 显示全部楼层
顶一个,学习了。感谢原子哥!
回复 支持 反对

使用道具 举报

17

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-4-12
在线时间
0 小时
发表于 2015-8-12 23:47:48 | 显示全部楼层
回复【27楼】正点原子:
---------------------------------
不容易。
规格严格,功夫到家
回复 支持 反对

使用道具 举报

16

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2015-8-9
在线时间
19 小时
发表于 2015-8-13 11:33:41 | 显示全部楼层
好帖子,顶一个
犯错不可怕,可怕的是不敢面对它
回复 支持 反对

使用道具 举报

14

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2015-11-2
在线时间
17 小时
发表于 2015-11-17 15:36:37 | 显示全部楼层
从本论坛下载了一个例程 名字touch。里面同样stm32f10x_lib.h,修改成stm32f10x.h 后,仍报错。将系统文件\SYSTEM\sys替换后也报错,怎么办呢
回复 支持 反对

使用道具 举报

11

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
425
金钱
425
注册时间
2013-3-19
在线时间
20 小时
发表于 2015-11-17 21:51:34 | 显示全部楼层
回复【33楼】YZM:
---------------------------------
你下载最新版的试试。。。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-12-2
在线时间
0 小时
发表于 2015-12-3 10:53:50 | 显示全部楼层
回复【6楼】正点原子:
------------------------------
请问原子哥,我的板子是STM32F103VE,安装了STM的库函数但是又出现了一下错误"no source": Error: command-line:  #992: invalid macro definition: STM32F10X_HD.USE_STDPERIPH_DRIVER,请问这是为什么啊?
做人就要有点王者分度,王者霸气,不然就会畏畏缩缩,遭人鄙视,胆小如鼠是最可怕的
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2016-3-10
在线时间
18 小时
发表于 2016-3-11 00:09:07 | 显示全部楼层
好帖子 顶一下  学习了 mark
回复 支持 反对

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-10-4
在线时间
35 小时
发表于 2016-8-15 15:42:11 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-10-4
在线时间
35 小时
发表于 2016-8-15 15:42:32 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2015-10-4
在线时间
35 小时
发表于 2016-8-16 22:41:40 | 显示全部楼层
xxxx学习
回复 支持 反对

使用道具 举报

10

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-1-26
在线时间
58 小时
发表于 2016-10-20 13:59:20 | 显示全部楼层
好帖学习哈
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2019-3-21
在线时间
7 小时
发表于 2019-3-21 19:24:44 | 显示全部楼层
可以  ,学习了
回复 支持 反对

使用道具 举报

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2018-4-25
在线时间
45 小时
发表于 2019-3-22 09:16:37 | 显示全部楼层
好贴,学习一哈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 05:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表