关于stm32建立工程的c语言问题 主函数里面包含了stm32f10x.h和led.h, led.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于stm32建立工程的c语言问题 主函数里面包含了stm32f10x.h和led.h, led.相关的知识,希望对你有一定的参考价值。
关于stm32建立工程的c语言问题
主函数里面包含了stm32f10x.h和led.h,
led.h里面有这样几句话:
ifndef _LED_H
define _LED_H
#include<stm32f10x.h>
为啥stm32f10x.h没有重复包含?
c语言小白一个,还请大神指教。
是我没说清楚,上面的代码是是我摘录书上的,如果按这样写,stm32f10x.h这个头文件有没有被重复包含?
追答没有呀,可以这样写
追问为啥?在主函数里面不是直接就包含了吗,为啥led.h还要包含一次?
追答他用到了他的函数,肯定要包含,
追问前面那个stm32f10x.h不能被共用吗
追答不是公用,也要包含,程序才能运行起来
追问谢谢!
本回答被提问者采纳 参考技术B 应该是这条语句的作用吧#ifndef
#define
end追问
没错 我想知道为啥这样写stm32f10x.h没有被重复包含呢
追答我记得这条语句作用就是防止重复定义
追问是的,但是在这里面是防止led.h重复包含吧,没有防止stm32f10x.h重复包含吧
谢谢!!
使用HAL库函数建立STM32F2工程
一、建立一个新的文件夹,新建三个文件夹User、Driver、Project,还可以加一个Doc存放工程的相关说明等等。
1、将STM32F2xx的库函数(HAL函数库)中的Drivers文件夹中的所有文件复制到Driver中。
2、找到.\\STM32Cube_FW_F2_V1.1.0\\Projects\\STM322xG_EVAL\\Templates目录下的INC和SRC文件夹,复制到User中。
二、打开KEIL-MDK软件,新建project->new project,目录选在Project文件夹下,Device选择STM32F205VCT6(根据实际芯片选择)。
三、在左侧导航栏, 接下来就是为工程添加组和源文件了,首先添加四个组:Lib,User,CMSIS,StartUp.然后为各个组添加源文件:
Lib->添加Derivers\\ STM32F2xx_HAL_Driver\\src下所有源文件,当然后也可以根据需要只选择部分文件。
User->添加User目录下所有源文件(如果目录中包含了system_stm32f2xx.c文件,注意不要重复引入工程中)。
CMSIS->添加\\Drivers\\CMSIS\\Device\\ST\\STM32F2xx\\Source\\Templates目录下的system_stm32f2xx.c文件。
StartUp->添加Drivers\\CMSIS\\Device\\ST\\STM32F2xx\\Source\\Templates\\arm目录下的startup_stm32f2xx.s文件.
这样一来就添加完所有文件了.
四、配置项:
1、全局常量(C++/define):USE_STDPERIPH_DRIVER, STM32F205xx;
2、头文件目录包含(C++/Include)
五、删除不必要的外设文件,精简程序。
附:
STM32Cube_FW_F2_V1.1.0库函数下载链接:
stm32f2xx标准库函数:http://download.csdn.net/detail/u013521188/9769839
stm32f2xx开发手册:http://download.csdn.net/detail/u013521188/9769842
HAL库函数手册:http://download.csdn.net/detail/u013521188/9771024
其中与V1.4.0中CMSIS中的内容大致相同,可以相互替补。
注意事项:
在头文件中包含其他的文件时,要放在声明之后,或在文件尾部进行包含。
以上是关于关于stm32建立工程的c语言问题 主函数里面包含了stm32f10x.h和led.h, led.的主要内容,如果未能解决你的问题,请参考以下文章