- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11 章
从模块到项目
STM32
本章知识与能力要求
理解项目与模块的关系;
理解从模块到项目的设计思想;
掌握由模块构成项目的方法。
项目是由两个或两个以上的功能模块组成的系统,是功能模块的有机融合。
工作原理:处理输入事件,经微处理器加工处理,产生结果并输出。
其输入事件往往来自传感器、按键或触屏等外围设备,处理后,输出信号用于驱动电机等执行机构或显示。
第11章 从模块到项目
第11章 从模块到项目
目 录
11.1 从模块到项目
11.2 项目实践
11.3 面向对象的编程思想
11.1 如何从模块到项目
11.1.1 项目需求分析
11.1.2 系统总体架构设计
11.1.3 系统软硬件设计
11.1.1 项目需求分析
对综合项目进行需求分析,明晰功能,明确一个系统/项目的输入输出,弄清楚项目/系统的应用范围或详细的规格要求。
这一阶段思考得越详细、考虑得越深入,对后期的开发就越有利。
硬件实现成本高,但执行效率高;
软件实现开发难度大,但成本低,
采用自顶向下、逐步细分为功能相对独立的模块化设计,会使得程序框架更为清晰。
软件和硬件的划分
系统功能模块的划分
11.1.2 系统总体架构设计
对系统进行功能模块划分、软件和硬件划分。
硬件模块如电源模块、通信模块、存储模块、显示模块等
多以具体功能进行划分,功能模块之间应满足低偶合、高内聚的要求
应用功能模块
高内聚:一个C文件中函数,只有相互之间的调用,而不存在调用其它文件中函数的情况
实现硬件的初始化操作,通常使用相应硬件名称命名,如LED硬件驱动模块定义为led.c
一种硬件对应一个硬件驱动模块
低耦合:模块与模块之间应相对独立,模块与模块之间的接口应尽量少而简单。
11.1.2 系统总体架构设计
一个嵌入式系统通常包括两大类模块
硬件驱动模块
11.1.2 系统总体架构设计
嵌入式系统应遵循的编程原则
11.1.2 系统总体架构设计
嵌入式系统应遵循的编程原则
1. 每一个功能模块都由源文件.c和头文件.h组成
.c源文件是每个功能模块具体功能的实现。
.h头文件是对该模块接口的声明,对外提供接口供外部程序调用,
2.每一个.c源文件都对应一个同名的.h头文件
把相对独立的功能放在.c源文件中用代码实现,把需要对外使用的函数或变量声明放在对应的.h头文件中供其它模块使用。
3.使用头文件共享函数、变量
将某模块提供给其它模块调用的函数、变量在对应模块的.h头文件中用extern关键字声明,而模块内的函数和全局变量应在.c文件开头部分用static关键字声明。
11.1.2 系统总体架构设计
嵌入式系统应遵循的编程原则
4.使用头文件共享宏及类型定义
针对复杂的系统,由于模块较多,涉及到的文件多,模块间全局变量也较多,可以将全局变量定义在一个.h头文件内
例如:将寄存器的位操作及常用的数据类型用typedef定义在头文件中,方便以后调用以及移植修改。
#ifndef __SYS_H
#define __SYS_H
#include stm32f10x.h
#include stdio.h
//位操作宏定义
#define BIT0 (0x0001)
#define BIT1 (0x0002)
… …
#define BIT30 (0
#define BIT31 (0
11.1.2 系统总体架构设计
嵌入式系统应遵循的编程原则
4.使用头文件共享宏及类型定义
//常用的数据类型定义,采用宏定义方式,便于移植和更改
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
#define s8 int8_t
#define s16 int16_t
#define s32 int32_t
#define bool _Bool
#define false 0
#define true !false
//结构体定义
typedef struct
{ unsigned short b0:1;
unsigned short b1:1;
… …
unsigned short b15:1;
}REG16_TypeDef;
/*位带操作,实现51类似的GPIO控制功能*/
//IO口宏定义操作
#define PAout ((volatile REG16_TypeDef *)GPIOA_ODR_Addr)
//输出
#de
您可能关注的文档
- 《嵌入式系统基础与实践》教学课件—02-ARM-Cortex-M3内核与STM32.pptx
- 《嵌入式系统基础与实践》教学课件—03-STM32微控制器及开发环境搭建.pptx
- 《嵌入式系统基础与实践》教学课件—04-STM32最小系统与嵌入式C语言.pptx
- 《嵌入式系统基础与实践》教学课件—05通用输入输出GPIO模块.pptx
- 《嵌入式系统基础与实践》教学课件—06中断.pptx
- 《嵌入式系统基础与实践》教学课件—07串口通信.pptx
- 《嵌入式系统基础与实践》教学课件—08DMA.pptx
- 《嵌入式系统基础与实践》教学课件—09定时器.pptx
- 《嵌入式系统基础与实践》教学课件—10-ADC.pptx
- 《嵌入式系统基础与实践》教学课件—12嵌入式操作系统.pptx
最近下载
- 滁州市2017-2018年度一师一优课、一课一名师活动市级.PDF VIP
- 国家药监局关于发布免于临床评价医疗器械目录的通告(2023年第33号).pdf
- 杭州市西湖区各级文物保护单位一览表(2023版).docx VIP
- 杭州市萧山区各级文物保护单位一览表(2023版).docx VIP
- 《《亚克西巴郎》ppt课件》小学音乐苏少版二年级上册_3.ppt
- 幼儿园课件:小班数学形状《小熊饼干店》.ppt
- 杭州市上城区各级文物保护单位一览表(2023版).docx VIP
- 现代控制工程(第五版)卢伯英习题答案解析.pdf
- 2022年考研英语一必威体育精装版完整版真题.pdf
- 专业气象服务标准化工作.doc
文档评论(0)