当前位置: 首页 > news >正文

软件工程知识点总结(1):软件工程概述

1 什么是软件?

       定义:计算机系统中的程序及其文档。

       ——程序是计算机任务的处理对象和处理规模的描述;

       ——文档是为了便于了解程序所需要的阐明性资料。

2 软件的特点?

       软件是无形的,不可见的逻辑实体

       ——它的正确与否,一直到程序在机器上运行才能知道

       ——这就给设计、生产和管理带来许多困难

       软件是定制、设计开发的,而不是生产制作的

       ——虽然整个工业向着基于构件的构造模式发展

       ——然而大多数软件仍然是根据实际的顾客需求定制的

       软件是复杂的

       ——软件涉及人类社会的各行各业

       ——软件开发常常涉及其他领域的专业知识,这对软件工程提出了很高的要求

       软件质量要求有所差异,有的很高,有的允许小的错误。

       ——例:1962.7.22,美国飞往金星的火箭“水手一号”的控制系统导航程序中,Do5 I=1,3 误写成 Do5 I=1.3,造成火箭偏离轨道,迫使地面炸毁火箭,直接损失 1850 万美元。

       软件开发工作涉及到很多社会因素

       ——如机构设置、体制和管理方式以及人们的观念和心理

       软件的开发成本高

       软件在使用过程中没有磨损,老化的问题

       软件易于复制

       软件的开发与运行都离不开相关的计算机系统环境

3 软件发展历史:

       1、第一阶段----个人程序阶段

       2、第二阶段----软件作坊阶段

       3、第三阶段----软件工程阶段

4 软件危机:

       软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到 的一系列严重问题。

       包含两方面问题: (1)如何开发软件以满足不断增长、日趋复杂的需求? (2)如何维护数量不断膨胀的软件产品? 几乎所有软件都不同程度地存在这些问题。

5 软件危机的典型表现:

       (1)对软件开发成本和进度的估计常常很不准确;

       (2)用户对“已完成的”软件系统不满意的现象经常发生;

       (3)软件产品的质量往往靠不住;

       (4)软件常常是不可维护的;

       (5)软件通常没有适当的文档资料;计算机软件不仅仅是程序,还应该有一整 套文档资料。 

       (6)软件成本在计算机系统总成本中所占的比例逐年上升;

       (7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势 。

6 产生软件危机的原因:

       (1)与软件本身的特点有关:软件不同于硬件,它是计 算机系统中的逻辑部件而不是物理部件。

       (2)与软件开发和维护的方法不正确有关。

7 消除软件危机的途径:

       (1)对计算机软件有正确的认识。

       (2)认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完 成的工程项目。

       (3)应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研 究探索

       (4)应该开发和使用更好的软件工具。

8 工程:以现有技术为基础,解决实际问题;与研发不同,研发讲究深度,窄而深; 工程讲究广度,将多种技能、知识组合起来解决问题;工程要解决的是实际问题, 必须要考虑复杂的实际环境;工程需要讲究组织和沟通;工程因为涉及到的人非 常多,会成立项目部,分部门协作,各司其职,同时有各类的文档化、标准化、 流程、规范等的判定体系,用来保证部门直接的无缝协同工作。

9 软件工程的代表性定义:

       Fritz Bauer:软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软 件而建立和使用的好的工程原则。

       IEEE:软件工程是(1)将系统化的、规范的、可度量的途径应用于软件的开发、 运行和维护的过程,即将工程化应用于软件中;(2)研究(1)中提到的途径。 (美国电气与电子工程师协会)

       计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理, 以工程化的原则和方法制作软件的过程。

10 软件工程的概念:

       软件工程:软件工程学。是用工程化的方法指导计算机软件开 发和维护的一门工程学科。包括软件开发技术(过程、方法和工具)与软件工程 管理。过程(框架,模型)是技术中最重要的一个要素。

       软件工程包括技术和管理两方面的内容。

       软件工程管理:通过计划、组织和控制等一系列活动,合理地配置和使用各种资 源,以达到既定目标的过程。(估算代码规模,工作量估算,进度计划,人员组 织,配置管理等)

       软件开发技术(软件工程方法学):通常把在软件生命周期全过程中使用的一整套 技术方法的集合称为方法学(methodology),也称为范型(paradigm)。

11 软件开发技术三要素:

       (1)过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。

       (2)方法:是完成软件产品的各项步骤所规定任务的技术方法,回答“怎样做” 的问题。

       (3)工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。

12 常接触到的工具:

       (1)项目管理工具: 用于项目计划、成本、进度管理等。如: Gantt Project

       (2)配置管理工具:版本管理 Visual Source Safe、cvs 版本控制系统

       (3)图工具(建模):程序流程图、软件结构图等工具如:visio、 Rational Rose

       (4)原型开发工具:CodeMaker 是一个能够通过数据库结构,自动生成完整的 数据库操作的动态网页的代码生成器 Mockup Builder:Mockup Builder 是一款界面原型设计工具, 支持网页、桌面应用、移动应用。

       (5)源码分析工具:SourceNavigator:代码阅读器。对阅读分析源代码极其有 用,可以显示类,函数以及成员之间的关系。

       (6)数据库建模工具:ERwin 可以实现将已建好的 ER 模型到数据库物理设计的 转换,即可在多种数据库服务器(如 Oracle、Sql Server、Mysql)上自动生成库 结构,提高了数据库的开发效率。

13 软件开发本质:

       不同抽象层次术语之间的“映射”

       不同抽象层次处理逻辑之间的“映射”

14 实现映射的基本手段:

       建模:是解决问题的一般途径!

15 何为建立问题的模型?

       运用所掌握的知识,通过抽象、给出该问题的一个结构。 例如:y=x2+5 ——采用数学作为建模工具

16 软件生命周期:

       软件产品从形成概念开始,经过开发、使用和维护,直到最后 退役的全过程(记)。 分为三个时期:软件定义、软件开发和运行维护(也称为软件维护)。每个时期又进一步划分成若干个阶段。

17 每个时期每个阶段的基本任务及文档:

       (1)问题定义

       任务:问题是什么 通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程 规模的书面报告。 经过讨论和必要的修改之后这份报告应该得到客户的确认。

       结果:关于系统规模和目标的报告书

       (2)可行性研究

       任务:有可行的解吗? 技术可行性、经济可行性、操作可行性 系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程。 研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。

       结果:可行性论证报告(立即进行/推迟进行/不能或不值得进行)

       (3) 需求分析——很重要,却常常被忽略

       任务:必须做什么(从用户的角度) 主要是确定目标系统必须具备哪些功能。 系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻 辑模型。

       结果:系统的逻辑模型(数据流图、数据字典、用例图、类图、顺序图等),用 规格说明书准确地记录对目标系统的需求

       (4) 概要设计

       任务:这个阶段的关键问题是:“概括地说,应该怎样实现目标系统?” 简单的说:划分模块及设计模块间关联。 又称:生成软件体系结构 设计出实现目标系统的几种可能的方案(低、中、高成本)。 用适当的表达工具描述每种方案,分析优缺点,推荐一个最佳方案,制定出实现 最佳方案的详细计划。设计程序的体系结构。

       结果:推荐的系统体系结构(层次图或结构图、架构、类图等)

       (5) 详细设计

        任务:怎样具体实现该系统 详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。

       结果:每个模块的算法和数据结构(程序流程图、PAD 图、N-S 图、伪代码等)。

       (6) 编码和单元测试

       任务:得到正确的程序模块 选取一种适当的高级程序设计语言(必要时用汇编语言),把详细设计的结果翻译 成用选定的语言书写的程序; 并且仔细测试编写出的每一个模块。

       结果:代码和测试报告

       (7) 综合测试

       任务:得到符合要求的软件 通过集成测试、验收测试、现场测试、平行运行等方法对目标系统进一步测试检 验。 通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的 要求,也可以决定测试和调试过程什么时候可以结束。

       结果:测试计划、详细测试方案以及实际测试结果、完整一致的软件配置

       (8) 软件维护(记)

        任务:使系统持久地满足用户的需要 改正性维护,诊断和改正在使用过程中发现的软件错误; 适应性维护,修改软件以适应环境的变化; 完善性维护,根据用户的要求改进或扩充软件; 预防性维护,修改软件为将来的维护活动做准备。 每一项维护活动实质上是经历了一次压缩和简化了的软件定义和开发的全过程。

       结果:完整准确的维护记录

18 软件生存周期模型:

       (IEEE)个包括软件产品开发、运行和维护中有关过程,活 动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。

       中国计算机科学与技术百科全书称软件生存周期模型为“软件开发模型”,并把 它定义为:软件过程、活动、任务的结构框架。

19 常见软件生存周期模型:瀑布模型、V 模型、增量模型、快速模型、螺旋模型、 喷泉模型、RUP 统一过程、敏捷过程——极限编程

20 瀑布模型的特点:

       (1)阶段间具有顺序性和依赖性:前一阶段的工作完成之后, 才能开始后一阶段的工作; 前一阶段的输出文档就是后一阶段的输入文档。

       (2)推迟实现的观点:对于规模较大的软件项目来说,往往编码开始得越早最终 完成开发工作所需要的时间反而越长。

       (3)质量保证的观点:每个阶段都必须完成规定的文档,是“文档驱动”的模型; 每个阶段结束前都要对所完成的文档进行评审,尽早发现问题,改正错误。

       瀑布模型的优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须 提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

       瀑布模型的缺点(重):客户要准确、完整、全部的表达出自己的需求;缺乏灵 活性,一旦需求存在偏差,最终只能终止或者失败;用户只能通过文档了解产品, 不经过实践的需求是不切实际的。

21 增量模型的特点:

       增量模型把软件产品作为一系列的增量构件来设计、编码、集成和测试。

       该模型假设需求是可以分段的,称为一系列增量产品,每一增 量可以单独开发。

       一旦需求确定后,就着手对第一个构件的需求进行分析。稍后,在未完成第一个 构件前,已开始第二个构件的分析。

       增量模型的优点:作为瀑布模型的变体,拥有瀑布模型的全部优点;第一个可以 交付的版本所需要的成本和时间少,迅速占领市场;承担的风险小;当配备的人 员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径; 逐 步增加产品功能可以使用户有较充裕的时间学习和适应新产品。

       增量模型的难点:软件体系结构必须是开放的;如果分增量块过多的话,会增加 管理成本;不同的构件并行地构建有可能加快工程进度,但是冒无法集成到一起 的风险。

22 快速原型模型步骤:

      (1)获取用户需求,描述规格说明书;使用原型(样本)思 想获取用户需求。

      (2)根据规格说明书开发维护软件

       原型开发工具: CodeMaker 是一个能够通过数据库结构,自动生成完整的数据 库操作的动态网页的代码生成器。

       Mockup Builder:Mockup Builder 是一款界面原型设计工具,支持网页、桌面应 用、移动应用。

23 快速原型模型的特点:

       软件产品的开发基本上是线性顺序进行的;快速原型的本 质是“快速”,应该尽可能快地建造出原型系统,以加速软件开发过程,节约成 本;在整个开发过程中,初始及多次迭代的原型可能跟用户的需求完全不同,引 起客户不满。但同时用户也能随时看到实物和进展。

24 螺旋模型思想:

       使用原型及其他方法来尽量降低风险。

25 螺旋模型的特点:

       每完成一个阶段,都要先进行风险识别,然后风险分析,对存 在的风险尽力进行风险控制。若风险很大,无法解决,甚至可以停止工作的进行。 风险分析是对工程建设项目投资决策或企业生产经营决策可能造成的失误和带 来的经济损失所进行的估计。

       图中的四个象限代表了以下活动:

       (1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;(左 上)

       (2)风险分析:分析评估所选方案,考虑如何识别和消除风险;(右上)

       (3)实施工程:实施软件开发和验证(右下)

       (4)客户评估:评价开发工作,提出修正建议,制定下一步计划。 (左下)

       螺旋模型的优点:主要优势在于它是风险驱动的。在评估和风险分析阶段都可作 出项目是否继续,以规避无法承担的风险;螺旋循环的次数指示了已消耗的资源; 减少了测试不足所带来的风险;维护只是模型的另一个周期,维护和开发之间没 有本质区别。

       螺旋模型的缺点:采用螺旋模型需要具有相当丰富的风险评估经验和专门知识, 在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。 过多的迭代次数会增加开发成本,延迟提交时间。

       适用于:适用于庞大、复杂并具有高风险的系统;更多的适用于内部开发的大规 模软件项目。

26 喷泉模型的特点:

       主要用于支持面向对象开发过程。体现了软件创建所固有的迭 代和无缝隙的特征。

27 RUP 统一软件开发过程四个阶段:

       (1)初始阶段:定义最终产品视图、业务模型并确定系统。

       (2)精化阶段: 分析问题域,建立健全、合理的体系结构基础,明确项目中高 风险元素,制定一个合理的项目开发计划。

       (3)构建阶段:开发一个完整的软件系统,并继续演进需求、体系结构,直至 作品提交。

       (4)移交阶段:为用户安装部署软件,产品提交给客户使用。

28 使用最广泛的软件开发方法学:结构化方法、面向对象方法

29 面向对象技术的优势:

       (1)稳定——较小的需求变化不会导致系统结构大的改变

       (2)复用——提高质量,降低成本

相关文章:

软件工程知识点总结(1):软件工程概述

1 什么是软件? 定义:计算机系统中的程序及其文档。 ——程序是计算机任务的处理对象和处理规模的描述; ——文档是为了便于了解程序所需要的阐明性资料。 2 软件的特点? 软件是无形的,不可见的逻辑实体 ——它的正确与…...

热烈庆祝中国科学技术大学建校六六周年

卡西莫多的诗文集2022-2024.9月6-校庆国庆专版 欢迎分享 通过网盘分享的文件:卡西莫多的诗文集2022-2024.9月6-A5-校庆国庆专版.pdf 链接: 百度网盘 请输入提取码 提取码: umpm...

iptables持久化命令:netfilter-persistent save

在Linux上,使用netfilter-persistent命令可以保存iptables防火墙规则,确保它们在系统重启后仍然有效。以下是如何使用netfilter-persistent来保存iptables规则的步骤: 打开终端:首先,你需要打开Linux系统的终端。保存…...

elementUI table 给表头添加气泡显示(鼠标悬浮显示注释)

elementUI table 给表头添加气泡显示(鼠标悬浮显示注释) 前言:文档显示:(使用插槽,我看看到底是怎么个事儿)文档代码:修改后的效果:页面效果: 前言: 公司出现…...

Web3社交新经济,与 SOEX 实现无缝交易的高级安全性

出于充分的理由,安全性是交易中至关重要的考虑因素。每个人都应该确保自己的资金在交易时是安全的。由于 SOEX 充当您与交易所的最佳连接,因此必须强调的是,该系统不会引发任何安全问题。 &a…...

Python和MATLAB(Java)及Arduino和Raspberry Pi(树莓派)点扩展函数导图

🎯要点 反卷积显微镜图像算法微珠图像获取显微镜分辨率基于像素、小形状、高斯混合等全视野建模基于探测器像素经验建模荧光成像算法模型傅里叶方法计算矢量点扩展函数模型天文空间成像重建二维高斯拟合天体图像伽马射线能量和视场中心偏移角标量矢量模型盲解卷积和…...

使用isolation: isolate声明隔离混合模式

在CSS中,isolation 属性与混合模式(如 mix-blend-mode 和 background-blend-mode)并不直接相关,但它确实可以影响元素如何与其他元素进行渲染,尤其是在涉及到堆叠上下文(stacking contexts)和复…...

93. UE5 GAS RPG 应用负面效果表现

在上一篇文章里,我们实现了添加负面效果GE,并且在添加GE时,也会给角色应用一个负面效果标签作为标识。在这一篇里,我们将通过负面效果标签标识,应用角色身上展现对应的负面效果的表现。 我们将在这篇文章里添加一个自定…...

TCP 和 UDP 区别

UDP UDP(用户数据报协议,User Datagram Protocol)是一种无连接的网络传输协议,提供了简单的消息传送服务。UDP位于传输层,允许应用程序向其他主机发送封装在IP数据报中的消息,而无需先建立连接。由于UDP不…...

免费2024柜台租赁经营合同范本模板下载分享

今天看到这个合同范本都拿来卖钱,我直接分享出来2024年最新的范本模板随便下,免费的 柜台租赁经营合同GF—2013—0603.docx: https://url51.ctfile.com/f/20096151-1353625109-4285d2?p1605 (访问密码: 1605) 柜台租赁经营合同GF—2013—0603.pdf: https://url51.ctfile.com/…...

模型和算力看板:Compute DashBoard

AGI 之路 AGI(通用人工智能)是整个计算机科学的圣杯,算力的增长和模型能力的提升(算法和数据)缺一不可。作为一个新质生产力,构建一个合理的评价体系是常用的方法论。针对模型和算力的评价,有类…...

Python加载 TorchScript 格式的 ResNet18 模型分类该模型进行预测并输出预测的类别和置信度

首先加载预训练的 ResNet18 模型。将模型设置为评估模式,以确保特定层(如 Dropout 和 BatchNorm)在评估时具有确定性的行为。创建一个形状为 (1, 3, 224, 224) 的随机张量作为示例输入。使用 torch.jit.trace 函数追踪模型在给定示例输入上的…...

学习笔记--MybatisPlus

官网:MyBatis-Plus 🚀 为简化开发而生 快速入门 入门案例 引入MybatisPlus的起步依赖 定义Mapper 问题: MybatisPlus中Invalid bound statement (not found): com.itheima.mp.mapper.UserMapper.insert 一定要指定实体类!&am…...

【机器学习】XGBoost的用法和参数解释

一、XGBoost的用法 流程: 代码案例: 二、XGBoost的几大参数 1、一般参数,用于集成算法本身 ①n_estimators 集成算法通过在数据上构建多个弱 评估器,汇总所有弱评估器的建模结果,以获取比单个模型更好的回归或分类…...

Vivado 约束

步骤5:保存约束 约束管理是设计流程的重要一步,Vivado设计套件 为您提供了在现有约束文件中添加新约束、覆盖的灵活性 现有约束,或创建新的约束文件以跟踪设计更改或完成 缺少约束。 您为设计创建了一些定时异常,但这些异常仅存在…...

如何在Excel中创建一个VBA宏,并设置一个按钮来执行这个宏

下面是一个详细的步骤指南 步骤1:创建VBA宏 1. 打开Excel并按 Alt F11 打开VBA编辑器。 2. 在VBA编辑器中,选择 Insert > Module 来插入一个新的模块。 3. 将以下代码粘贴到模块中: vba Sub CreateNewSheet() 声明一个工作表对象Dim …...

H3C SR-MPLS通过OSPF通告SID配置

首先在配置前理解几个基本概念 Prefix SID配置 统一分配和配置(全局规划)loopback和prefix sidPrefix SIDSRGB Base(16000)index Adj SID自动生成 对应SR节点间的互联链路SR节点本地标识,从设备本地Segment池中动态…...

JS面试真题 part2

JS面试真题 part2 6、typeof 与 instanceof 区别7、JavaScript原型,原型链?有什么特点8、说说你对作用域链的理解9、谈谈this对象的理解10、说说new操作符具体干了什么 6、typeof 与 instanceof 区别 自己回答: typeof:用来判断数…...

python 下载excel 添加水印

Python 在 Excel 中添加水印 https://zhuanlan.zhihu.com/p/499239298 生成图片 from PIL import Image, ImageDraw, ImageFont import numpy as np import matplotlib.pyplot as plt# 创建一个新的白色图片 img Image.new(RGB, (200, 100), color(255, 255, 255))# 指定中…...

CosyVoice:开源强大的 AI 语音合成工具

在当今科技飞速发展的时代,AI 语音合成技术正逐渐改变着我们的生活。今天,就为大家介绍一款卓越的语音合成工具——CosyVoice。 一、安装步骤 克隆和安装: 克隆仓库:git clone --recursive https://github.com/FunAudioLLM/Cos…...

【靶场】Pikachu—XSS Cross-Site Scripting(前五关)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍收藏💗支持一下哦 【靶场】Pikachu—XSS Cross-Site Scripting(前五关) 第一关 反射型xss(get)第二关 反射型xss(post)第三关…...

Dance with Compiler - EP2

今天来熟悉汇编指令。 基本指令特点 str: store value to memory ldr: load value from memory stp: store register value to stack ldp: load stack value to register 更新寄存器的操作,一般结果寄存器是左操作数。 写内存的操作(str)&…...

微博视频无水印下载的方法

在如今的数字时代,社交媒体平台如微博已经成为人们分享日常生活、获取新闻和娱乐内容的重要渠道。我们时常会在刷微博时看到一些有趣的视频图片,或是名人的访谈,或是搞笑的短片,有时甚至是一些珍贵的历史资料。这些视频不仅内容丰…...

C语言 | Leetcode C语言题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; int lastRemaining(int n) {int a1 1;int k 0, cnt n, step 1;while (cnt > 1) {if (k % 2 0) { // 正向a1 a1 step;} else { // 反向a1 (cnt % 2 0) ? a1 : a1 step;}k;cnt cnt >> 1;step step << 1;}return …...

虚拟现实辅助工程技术助力多学科协同评估

在当今高速发展的经济环境中&#xff0c;制造业面临着多重挑战&#xff0c;包括提高产品性能、压缩设计周期、实现轻量化设计和降低成本。为了有效应对这些挑战&#xff0c;多学科协同评估成为缩短研发周期和提升研制质量的关键手段。 传统的多学科评估面临着数据孤立与融合困难…...

Java获取小程序码示例(三种小程序码)

首先我们可以看到官方文档上是有三种码的 获取小程序码 这里特别要注意的是第一种和第三种是有数量限制的&#xff0c;所以大家生成的时候记得保存&#xff0c;也不要一直瞎生成 还有一点要注意的是第一种和第二种是太阳码 第三种是方形码 好了直接上代码 这里要注意&#xff…...

【最新华为OD机试E卷-支持在线评测】分糖果(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…...

Windows下Python和PyCharm的应用(二)__快捷键方式的设定

前言 程序写久了&#xff0c;难免会形成自己的编程习惯。比如对某一套快捷键的使用&#xff0c;已经形成了肌肉记忆。 为了方便快捷键的使用&#xff0c;可以在PyCharm中设置自己喜欢的快捷键。 我比较习惯于微软Visual Studio的快捷键设置。&#xff08;因为早些年VC开发用的…...

网络安全宗旨和目标

网络安全涉及网络和相关数据及信息的保护与保障。它已从物理技术发展到防病毒和反网络钓鱼平台等软件方法。 在本章中&#xff0c;我们将详细讨论网络安全的主要目标和原则&#xff0c;并提供与之相关的具体示例。所以&#xff0c;让我们从网络安全的目标开始。 网络安全的目的…...

stm32之软件SPI读写W25Q64存储器应用案例

系列文章目录 1. stm32之SPI通信协议 文章目录 系列文章目录前言一、电路接线图二、应用案例代码三、应用案例分析3.1 SPI通信模块3.2 W25Q64模块3.3 主程序 前言 提示&#xff1a;本文主要用作在学习江科大自化协STM32入门教程后做的归纳总结笔记&#xff0c;旨在学习记录&a…...