stm32_文件组织结构
一般项目中的文件组织结构是这样的: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加加一次。
评论