程序框架思想
一、程序框架的构想
1、STM32cubeMX生成的代码与添加的应用代码分离;
2、利用STM32cubeMX重新生成代码,不影响应用代码;
3、应用代码的添加,移除与修改,不影响cube生成的代码;
4、代码架构方便阅读,编辑,修改与移植;
5、代码架构标准化,可以很方便的应用到产品开发中。
二、程序框架的实现
1、新增MyApplication文件夹,放置4个标准c文件,分别是公共文件,回调文件,系统文件,用户初始化文件,后续应用代码均放在
此文件夹
2、新增MyApplication.h文件,包含所有用户代码的头文件与外设头文件,调整外设或用户文件,只需要调整此文件内的相应头文件即可;
3、main.c文件标准化。
三、MyApplication.h
1、此文件放置于main.c与应用代码文件中,作为头文件的集合;
2、更改处理器外设或应用代码,此文件需要相应的增加或删除相应的头文件。
新建一个MyApplication.h的头文件,放在MyApplication文件下,该头文件包含了所有系统和外设的头文件,在其他.c源文件中只需引用这个MyApplication.h头文件即可
相当于之前STC15实战的main.h头文件,只不过现在的main.h头文件由CubeMX软件生成了
四、main.c文件
main.c源文件可以标准化,就是说以后无论什么项目,都可以直接复制该main.c文件去使用
1.添加头文件集合
头文件标准化,以后要添加或删除头文件,只需在MyApplication.h文件里操作即可,不用修改main.c
2.添加用户初始化函数
可利用结构体,调用Peripheral_Set函数初始化外设,指的是芯片之外的那些外设
3.标准化主循环
whlie循环里面就放系统运行的函数
4.标准化错误处理函数
5.标准化断言失败处理函数
五、system文件
1.头文件
主要定义结构体类型System_t,包含3个函数指针,分别为函数运行,系统错误处理,断言失败处理,被main.c文件调用。
2.源文件
主要定义结构体System以及3个函数,并将3个函数的名称(首地址)赋值给System结构体,完成结构体的初始化。如此一来,main.c文件可以通过System结构体的函数指针调用System.c文件的3个函数了。
Run函数:用户应用代码;
Error_Hander函数:系统错误处理代码;
Asset_Failed函数:断言失败处理代码。
六、Run函数
以后的功能代码就可以写在Run函数里面,比如让LED灯隔1秒翻转