新闻中心

EEPW首页>嵌入式系统>设计应用> stm32_文件组织结构

stm32_文件组织结构

作者: 时间:2016-11-11 来源:网络 收藏
以前给出完整程序时,是为了方便初学者看。将main函数用到的所有函数都放到main函数后,在main函数前加上函数声明,这样会显得main.c文件没有层次,所有函数在main.c中冲淡了功能代码。

本文引用地址://m.amcfsurvey.com/article/201611/317029.htm

一般项目中的文件组织结构是这样的:main.c文件只包含体现功能的代码。

main.c头文件只包含两个

#include "stm32f0xx.h"
#include "hw_config.h"

接下是用户自定义的宏,这些宏也要是跟功能息息相关的,说白了就是main函数用到的,如果跟功能不直接相关,可以放到hw_config.h定义,如GPIO管脚的定义

#defineOEGPIO_Pin_5

接下是全局变量的定义,也是本着main函数用到的在这里定义。

接下就是main函数了,其结构是

void main(void)
{
//定义main函数用到的局部变量

//初始化全局变量和局部变量

//初始化硬件,如RCC、NVIC、GPIO、TIM、USART、Systick、IWWDG等

//下面就是实现功能代码了,一般是while(1)结构.
while (1)
{
}
}

main.c文件就包含这些代码,至于main函数调用的函数,如RCC_Configuration、NVIC_Configuration、GPIO_Configuration、SysTick_Configuration、USART1_Configuration等,在hw_config.h声明,在hw_config.c中定义。

注意:因为main函数调用的所有函数都在hw_config.c中定义,所以在hw_config.c中势必会定义一些变量,而这些变量在main.c文件中也要用到,只需将这些变量在hw_config.h中extern声明一下。这样即使stm32f0xx_it.c也用到hw_config.c中定义的这些变量,也只需包含hw_config.h头文件即可。

以一个计数变量usart1_invalidframe_time为例,在hw_config.c定义,在hw_config.h中用extern声明,在main.c中清零(usart1接收到数据将该变量清零),在stm32f0xx_it.c的SysTick_Handler函数中每1ms加加一次。




关键词:stm32文件组织结

评论


技术专区

关闭