野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16195|回复: 5

stm32f10x_conf.h 配置文件中包含文件指令注释掉依然可以包含相关头文件?

[复制链接]
发表于 2015-12-9 16:05:38 | 显示全部楼层 |阅读模式
本帖最后由 qduwg 于 2015-12-9 16:30 编辑

今天研究了一下stm32f10x_conf.h这个文件,里面的包含指令都默认是注释掉了。依然可以正确编译工程。请问是不是这个文件内的包含指令是没有用的。而在外设的.c文件内都包含了相应的头文件指令。所以,stm32f10x_conf.h里面的包含头文件指令是不是可有可无的呢?画蛇添足的感觉。
已经在编译环境内设置了包含路径
包含文件问题1.jpg
每个外设文件都有包含头文件的指令
包含文件问题2.jpg


这个文件里面的包含指令都是可有可无?
包含文件问题3.jpg
教程上下面的说法,不一定全对了?
包含文件问题4.jpg


感谢火哥的回答!



回复

使用道具 举报

发表于 2015-12-10 08:43:36 | 显示全部楼层
教程说明是没错的,
stm32f10x_gpio.c文件是需要包括相关外设头文件的,stm32f10x_conf.h文件可以说是给用户程序使用的。
比如我们自己编写的led.c文件和led.h文件,led.c文件一般需要包括led.h文件,因为led.c可能需要用到led.h内定义的宏,另外led.h文件一般还有led.c内函数的声明。
我们用户程序需要用到led.c文件内函数,所以需要包括led.h文件。
这里led.h文件就被两个地方include了
回复 支持 反对

使用道具 举报

发表于 2015-12-10 08:47:08 | 显示全部楼层
有的外设没有用到。当用到这些外设的时候又没有包含这些头文件是会错的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-10 11:55:54 | 显示全部楼层
flyleaf 发表于 2015-12-10 08:47
有的外设没有用到。当用到这些外设的时候又没有包含这些头文件是会错的

明明在每个外设的.c文件开始位置写上了包含指令,包含该文件用到的头文件的。为什么还需要那个conf.h文件来配置?好像没有关系啊。除非在主函数内直接引用到了有关外设函数。

非常感谢!
回复 支持 反对

使用道具 举报

发表于 2015-12-10 22:53:46 | 显示全部楼层
亽亼 发表于 2015-12-10 08:43
教程说明是没错的,
stm32f10x_gpio.c文件是需要包括相关外设头文件的,stm32f10x_conf.h文件可以说是给用 ...

我现在正在学习那个教程,严格按照书上的例子写的led.h和led.c但是编译就出错了
led.c(17): error:  #20: identifier "GPIO_Pin3" is undefined
        GPIO_SetBits (GPIOC, GPIO_Pin3 | GPIO_Pin4 |GPIO_Pin5);
led.c(17): error:  #20: identifier "GPIO_Pin4" is undefined
        GPIO_SetBits (GPIOC, GPIO_Pin3 | GPIO_Pin4 |GPIO_Pin5);
led.c(17): error:  #20: identifier "GPIO_Pin5" is undefined
        GPIO_SetBits (GPIOC, GPIO_Pin3 | GPIO_Pin4 |GPIO_Pin5);
led.c: 0 warnings, 3 errors
我现在只是初学阶段,求指导
回复 支持 反对

使用道具 举报

发表于 2015-12-10 22:55:09 | 显示全部楼层
fangliusu 发表于 2015-12-10 22:53
我现在正在学习那个教程,严格按照书上的例子写的led.h和led.c但是编译就出错了
led.c(17): error:  #20 ...

不好意思,这个问题刚刚解决了
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 04:07 , Processed in 0.038228 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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