stm32的软件架构问题

时间:2022-01-11 03:20:57

1、 架构组成:程序代码分为四种结构

a) 顺序执行代码

定义:按照顺序逐行执行的代码

优点:是思路简单,代码可靠不易被干扰。

缺点:占用资源

用途:只用来各种变量、函数的定义,硬件的初始化程序

位置:main.c的开始一直到main函数的while函数之前

b) 空闲执行代码

定义:在CPU空闲的时候才执行的代码

        优点:不占用资源

        缺点:执行的实时性不能保证

        用途:非实时任务,调试信息输出,不重要的状态指示

        位置:main.c的main函数的while函数内部

c) 中断执行代码

定义:由软硬件事件打断整个程序而执行的代码

优点:可以保证实时性,各种中断可以安排优先顺序

缺点:关系相对复杂,互相之间容易干扰

用途:触发性的代码,比如接收数据,响应外部设备,按钮的相应

位置:stm32f10x_it.c内部

d) 循环执行代码

定义:按照时间周期执行的代码

优点:定期自动执行

缺点:实时性不好

用途:需要周期执行的任务,状态检查及相关信息输出,数据记录

位置:stm32f10x_it.c的SysTickHandler内部

e) DMA自动代码

定义:不需要主程序干预,外设自动执行

优点:自动刷新数据,不占用CPU资源

缺点:不能控制

用途:数据通信存储,AD转换

位置:不需要