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

系统架构设计师——软件开发方法分类

分类

软件开发方法是指软件开发过程所遵循的办法和步骤,从不同的角度可以对软件开发方法进行不同的分类。

按照开发风范

软件开发过程中,开发方法的选择对项目的成功至关重要。这些方法可按照特定的开发风范分为自顶向下和自底向上两种主要策略,它们分别适应不同的项目需求和开发环境。以下是这两种开发风范的特点和应用场景的详细解析:

自顶向下开发方法

  1. 核心思想

    • 该方法将一个大规模的问题分解成多个小问题,并逐个解决。每个小问题由相应的模块负责处理,模块内部进一步细分为抽象步骤和具体步骤[1]。
  2. 适用场景

    • 适用于需求明确、结构清晰的项目。这种方法便于管理者从高层次审视项目全局,逐步细化到具体实现,有利于阶段性的成果展示和评估。
  3. 优点

    • 易于规划和分阶段实施,可以系统地管理和控制项目的进展。
    • 由于是从整体到局部的逐步精细化,可以确保各部分之间的良好集成和协同工作。
  4. 缺点

    • 在项目初期就需要一个清晰、全面的需求分析和设计,若顶层规划有误,将直接影响到后续所有步骤。
    • 对变更的适应性较差,一旦需要修改核心设计,可能导致大量返工。

自底向上开发方法

  1. 核心思想

    • 从系统的基础功能开始,逐步构建起完整的系统。开发者从具体的器件或逻辑部件出发,依靠经验和技能,通过连接和修改这些基础部件来扩展系统的功能和规模[1]。
  2. 适用场景

    • 适合于创新型项目或当完整需求不明确的项目。通过实证的方式逐步完善系统功能,特别有效于技术原型的开发和小步快跑的项目推进。
  3. 优点

    • 可以快速启动项目并迅速看到初步成果,有助于及早发现设计和实现中的问题。
    • 高度灵活,对于需求和技术路线不确定的项目,可以边开发边调整方向。
  4. 缺点

    • 难以进行大规模和长期的项目规划,可能因缺乏前瞻性设计而导致后期整合困难。
    • 在没有明确目标的情况下可能导致项目方向偏离或功能冗余。

总的来说,在选择适合的软件开发风范时,需要根据项目的具体需求、团队的工作经验和项目的管理方式做出决策。自顶向下的方法提供了一种系统的、分层的解决方案,适合需求明确和风险较低的项目。而自底向上的方法则更加灵活,适合创新性强或需求不断变化的项目。在实际开发中,往往需要根据项目的具体情况灵活运用这两种方法的优势,以期达到最佳的开发效果。

按照性质

软件开发方法根据其性质可以分为形式化方法和非形式化方法,其中非形式化方法包括结构化方法、面向对象方法、原型方法、面向服务的方法、构件化开发方法和敏捷开发方法。这些方法各具特色,适应不同的开发需求和项目环境,下面将具体分析每种方法的核心思想、适用场景、优点以及缺点:

形式化方法

  1. 核心思想

    • 基于严密的数学形式机制,通过形式规格说明语言来描述软件系统的需求和设计。这种方法侧重于通过数学验证保证软件系统的正确性。
  2. 适用场景

    • 适用于对安全性和可靠性要求极高的系统,如交通控制系统、金融交易系统等。
  3. 优点

    • 能够提供无歧义的需求和设计描述,减少误解和错误。
    • 支持系统属性的形式验证,提高软件的可靠性。
  4. 缺点

    • 高复杂度和成本,需要专业人员掌握形式方法。
    • 难以适用于需求不断变化或不明确的项目。

非形式化方法

1. 结构化方法
  1. 核心思想

    • 采用“自顶向下”的设计途径,强调在开发过程中先定义全局结构,再细化到局部实现。
  2. 适用场景

    • 适合于需求相对稳定且清楚的项目开发。
  3. 优点

    • 易于理解和实施,有助于保持系统的结构清晰。
    • 便于阶段性成果的评估和管理。
  4. 缺点

    • 对需求变化的适应性较差,变更成本高。
      结构化开发方法,作为一种传统的软件开发方法,主要包括结构化分析、结构化设计和结构化程序设计三个部分。这种方法强调开发的规范性和系统性,适用于需求明确和项目规模较大的软件开发。以下是结构化开发方法的具体内容和特点解析:

结构化分析

  1. 核心思想

    • 通过使用标准化的工具和技术,如数据流图和结构化英语,来描述软件需求和定义系统功能。
    • 该方法侧重于全面理解用户的需求并将这些需求转化为详细规格说明。
  2. 适用场景

    • 适合需求稳定且清晰的项目开发,特别是对数据处理要求高的系统。
  3. 优点

    • 有助于清晰并详细地捕获用户需求,减少开发过程中的误解和错误。
    • 提供了一种系统化的需求分析方法,易于项目管理和维护。
  4. 缺点

    • 对于需求频繁变动的项目,维护和更新文档可能变得困难和耗时。

结构化设计

  1. 核心思想

    • 在结构化分析的基础上,采用“自顶向下”的设计方法将系统分解成若干模块,每个模块解决特定的子问题。
    • 使用结构图和伪代码等工具来定义系统的体系结构和各模块之间的关系。
  2. 适用场景

    • 适用于大型项目,尤其是需要高度模块化和集成的项目。
  3. 优点

    • 有利于系统的模块化设计,提高系统的可读性和可维护性。
    • 便于阶段性成果的评估和管理。
  4. 缺点

    • 设计的初期阶段如果出现问题,可能导致整体结构需要重大调整。

结构化程序设计

  1. 核心思想

    • 强调程序的逻辑结构清晰和易理解,通常遵循“自顶向下”的程序设计方法。
    • 强调编码规范和注释的完整性,确保代码的质量和可维护性。
  2. 适用场景

    • 适合于任何规模的软件开发,特别是那些对代码质量要求高的项目。
  3. 优点

    • 促进高质量代码的编写,增加代码的可读性和可维护性。
    • 有助于错误的快速识别和修复。
  4. 缺点

    • 对开发者的编程技能要求较高,需严格遵守编码规范。
2. 面向对象方法
  1. 核心思想

    • 基于类和对象的概念,强调封装、继承和多态,尝试模拟现实世界的行为。
  2. 适用场景

    • 适合大型复杂系统,尤其是需求频繁变更的项目。
  3. 优点

    • 提高软件复用性和可维护性,更符合现代软件的开发需求。
    • 更贴近人类对现实世界的认知,便于理解和交流。
  4. 缺点

    • 设计阶段较为复杂,对开发者的OO理解有一定要求。

面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)是面向对象开发的核心组成部分,它们共同支持软件的开发过程。这些方法强调使用对象和类的概念来模拟现实世界的实体,从而提高软件的可理解性、可维护性和可重用性。以下是对这些方法以及相关方法的具体分析:

Coad/Yourdon方法

  1. 核心思想

    • 这种方法特别强调在OOA和OOD之间保持完全一致的概念和表示法,从而减少从分析到设计阶段的转换误差。
    • 该方法侧重于建模对象的类层次结构,定义对象间的消息传递以及识别继承关系。
  2. 适用场景

    • 适合于业务逻辑复杂、数据结构稳定且需要高度模块化的软件项目。
  3. 优点

    • 通过统一的表示法简化了分析和设计过程,易于理解和实施。
    • 增强了系统的适应性和维护性,因为系统的结构更加清晰。
  4. 缺点

    • 对于非面向对象的开发者来说,学习和适应可能需要较长时间。

Booch方法

  1. 核心思想

    • Booch方法强调静态模型和动态模型的使用,其中静态模型包括类图和对象图,而动态模型则包括状态图和顺序图。
    • 这种方法不仅关注系统的结构和组成,还关注对象的行为和交互。
  2. 适用场景

    • 适合对系统行为和交互要求较高的软件开发项目。
  3. 优点

    • 提供了全面的视图,帮助开发者更好地理解系统的整体功能和行为。
    • 促进了高质量的设计和代码实现。
  4. 缺点

    • 方法的学习曲线可能较陡峭,特别是对于那些不熟悉面向对象分析与设计的团队。

OMT方法

  1. 核心思想

    • OMT使用了三种模型:对象模型、动态模型和功能模型,以支持软件开发的全面需求。
    • 特别注重系统的功能需求,使用数据流图(DFD)来描述。
  2. 适用场景

    • 适用于需要精确描述系统功能和数据流的项目。
  3. 优点

    • 提供了一个从不同角度审视系统的框架,增加了分析和设计的深度。
    • 有助于揭示系统中的复杂数据关系和处理流程。
  4. 缺点

    • 可能会增加分析和设计的复杂度,特别是在数据和功能模型较为复杂时。

OOSE

  1. 核心思想

    • 使用用例代替传统的数据流图来进行需求分析,强调从用户视角出发的需求定义。
    • 支持整个开发过程中的一致性和连贯性。
  2. 适用场景

    • 特别适合那些需求频繁变更和需要紧密用户参与的项目。
  3. 优点

    • 加强了与用户的沟通,确保开发的产品更贴近用户需求。
    • 提高了开发过程的灵活性和迭代效率。
  4. 缺点

    • 需要较高的用户参与度和良好的沟通机制,否则可能导致需求不稳定和项目延期。
3. 原型方法
  1. 核心思想

    • 通过构建可运行的模型(原型)来获取用户反馈,逐步完善需求和设计。
  2. 适用场景

    • 特别适合需求不明确或需快速验证的项目。
  3. 优点

    • 可以快速验证和调整需求,降低风险。
    • 用户参与度高,有助于提升用户满意度。
  4. 缺点

    • 若管理不当,可能导致项目目标偏移或无法按时完成。
4. 面向服务的方法
  1. 核心思想

    • 以服务为核心构建软件,每个服务独立提供业务功能,通过标准接口与其他服务交互。
  2. 适用场景

    • 适合需要高度可扩展性和平台无关性的分布式系统。
  3. 优点

    • 支持模块化开发和服务重用,提高系统的灵活性和可维护性。
    • 易于集成和扩展,适应快速变化的业务需求。
  4. 缺点

    • 设计和实现难度较大,需要良好的SOA架构设计。
5. 构件化开发方法
  1. 核心思想

    • 使用预制的高复用代码组件进行软件开发,提高开发效率和质量。
  2. 适用场景

    • 适合有大量标准功能模块可复用的项目。
  3. 优点

    • 显著缩短开发时间,降低成本。
    • 提高软件的可靠性和可维护性。
  4. 缺点

    • 需要丰富的组件库支持,且对组件的管理要求较高。
6. 敏捷开发方法
  1. 核心思想

    • 强调人的交互、产品的逐步完善、客户合作以及对变化的快速响应。
  2. 适用场景

    • 特别适合需求快速变化和项目周期短的开发环境。
  3. 优点

    • 灵活性高,能快速响应需求变化。
    • 持续交付,确保项目始终在正确的轨道上前进。
  4. 缺点

    • 需要团队成员具有高度的自我管理和协作能力。
    • 可能不适合那些需求稳定且明确的项目。

综上所述,软件开发方法的选择应考虑项目的具体需求、团队的技能和项目所处的环境。在实际开发中,往往需要根据项目的具体情况灵活运用各种方法的优势,以达到最佳的开发效果。

适用范围

整体性方法通常适合于项目需求明确、变更较少的情况,而局部性方法则更适应于需求频繁变动或不确定性较高的项目。以下是详细说明:

  1. 整体性方法的适用范围

    • 结构化方法强调了整体性和全局性,适合那些需求较为稳定和明确的项目。
    • 瀑布模型适合于需求确定、工作环境稳定、对目标和环境很熟悉的低风险项目。
    • V模型适用于对软件质量有严格要求的项目,它不利于需求变化的适应。
  2. 局部性方法的适用范围

    • 快速原型模型适用于对所开发领域比较熟悉且有快速原型开发工具的项目;在产品移植或升级时也非常适合。
    • 增量模型适用于已有产品升级或新版本开发,以及完成期限严格要求的产品。
    • 螺旋模型适合于大规模软件项目,尤其是需要风险管理和客户持续参与的项目。
    • 敏捷开发,如Scrum模型和极限编程,适合于需求频繁变化、迭代周期短的项目,需要经验丰富的开发者和良好的团队协作。

针对整体性方法和局部性方法的选择,考虑以下因素:

  • 项目的复杂度和规模
  • 团队的技能和经验
  • 需求的变动频率
  • 风险管理的必要性

相关文章:

系统架构设计师——软件开发方法分类

分类 软件开发方法是指软件开发过程所遵循的办法和步骤,从不同的角度可以对软件开发方法进行不同的分类。 按照开发风范 软件开发过程中,开发方法的选择对项目的成功至关重要。这些方法可按照特定的开发风范分为自顶向下和自底向上两种主要策略&#…...

《看漫画学Python》全彩PDF教程,495页深度解析,零基础也能轻松上手!

前言 说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的。随着近年大数据、人工智能的兴起,Python 越来越多的出现在人们的视野中。 在各家公司里,Python 还常被用来做快速原型开发,以便更快验证产品…...

用户画像系列——Spark任务调优实践

在画像标签的加工和写入hbase中,我们采用了spark来快速进行处理和写入。但是在实际线上运行的过程中,仍然遇到了不少问题,下面来总结下遇到的一些问题 1.数据倾斜问题 其实spark 数据倾斜思路和hive、mapreduce 数据倾斜思路处理类似&…...

前端面试宝典【HTML篇】【4】

欢迎来到《前端面试宝典》,这里是你通往互联网大厂的专属通道,专为渴望在前端领域大放异彩的你量身定制。通过本专栏的学习,无论是一线大厂还是初创企业的面试,都能自信满满地展现你的实力。 核心特色: 独家实战案例:每一期专栏都将深入剖析真实的前端面试案例,从基础知…...

【UbuntuDebian安装MySQL】在线安装MySQL8

云计算:腾讯云轻量服务器 系统:Ubuntu-v22 1.更新系统软件包列表 打开终端并运行以下命令来确保你的系统软件包列表是最新的: sudo apt update2.安装 MySQL 存储库 MySQL 提供了官方的 APT 存储库,可以确保你安装的是最新版本…...

PDF翻译神器:这四款可以实现一键搞定,留学党必备!

外文的阅读还是需要一定的语言功底,现在大家也对外文越来越重视起来了,但是借助一些翻译工具进行翻译可以很大程度地提升工作的效率,就算是遇到批量的文件处理也可以一键翻译出来,所以今天借此文章整理了四款好用的pdf翻译工具&am…...

精心准备的高水平的博客【点评语】,来抄啊!

大家好,我是一名_全栈_测试开发工程师,已经开源一套【自动化测试框架】和【测试管理平台】,欢迎大家关注我,和我一起【分享测试知识,交流测试技术,趣聊行业热点】。 第 1 条 这篇博客文章如同灯塔般照亮了技…...

gitlab汉化

承接上文安装好gitlab 首先查看好gitlab的版本(ps:要启动gitlab) cat /opt/gitlab/embedded/service/gitlab-rails/VERSION我的版本是10.0.0 然后安装git yum install -y git然后克隆一下汉化的仓库 git clone https://gitlab.com/xhang/g…...

SSH访问控制:精确管理你的服务器门户

“ 在数字世界中,服务器的安全性是任何网络管理员的首要任务。特别是对于远程登录协议如SSH,确保只有授权用户可以访问是至关重要的。 今天,记录两种有效的方法来控制用户对特定服务器的访问:通过sshd_config实现黑/白名单机制和利…...

Java中的SSL/TLS安全通信实现

Java中的SSL/TLS安全通信实现 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将探讨如何在Java中实现SSL/TLS安全通信。 一、什么是SSL/TLS SSL(Secure Sockets La…...

2959. 关闭分部的可行集合数目

2959. 关闭分部的可行集合数目 题目链接:2959. 关闭分部的可行集合数目 代码如下: //参考链接:https://leetcode.cn/problems/number-of-possible-sets-of-closing-branches/solutions/2844227/guan-bi-fen-bu-de-ke-xing-ji-he-shu-mu-b-85ov class S…...

第十九天培训笔记

上午 1 、构建 vue 发行版本 [rootserver eleme_web]# nohup npm run serve& // 运行 vue 项目 [rootserver eleme_web]# mkdir /eleme [rootserver eleme_web]# cp -r /root/eleme_web/dist/* /eleme/ // 将项目整体 移动到 /eleme 目录下 [rootserver eleme_web]# …...

初学者编程指南:方法与资源推荐

一、引言 编程已成为当代大学生的必备技能,但面对众多编程语言和学习资源,新生们常常感到迷茫。如何选择适合自己的编程语言?如何制定有效的学习计划?如何避免常见的学习陷阱?编程不仅是技术领域的一项基本技能&#…...

【SpringBoot】数据验证之URL参数校验

URL参数校验 Validated public class UserController{ RequestMapping("/query"); public String query(Length(min2,max10,message"姓名长度错误,姓名长度2-10!") RequestParam(name"name",requiredtrue)String name…...

目标检测 | yolov2/yolo9000 原理和介绍

前言:目标检测 | yolov1 原理和介绍 简介 论文链接:https://arxiv.org/abs/1612.08242 时间:2016年 作者:Joseph Redmon  作者首先在YOLOv1的基础上提出了改进的YOLOv2,然后提出了一种检测与分类联合训练方法&#…...

基于Raft算法的分布式KV数据库:一、开篇

项目描述:本项目是基于Raft算法的分布式KV数据库,保证了分布式系统的数据一致性和分区容错性,在少于半数节点发生故障时仍可对外提供服务。使用个人实现的分布式通信框架mpRPC和跳表数据库skipList提供RPC服务和KV存储服务。 github地址&…...

react-日期选择器封装

文件 import { useMemo, useState, useEffect } from "react" import dayjs, { Dayjs } from "dayjs" import "dayjs/locale/zh-cn" import "./App.css" dayjs.locale("zh-cn")function SimpleCalendar() {// 当前时间对象…...

【C++题解】1022. 百钱百鸡问题

欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1022. 百钱百鸡问题 类型:嵌套穷举 题目描述: 用 100 元钱买 100 只鸡,公鸡,母鸡,小鸡都要有。 公鸡 5 元 1 只&#x…...

计算机毕业设计选题推荐-二手闲置交易系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

AI Agents(智能代理)教程:如何创建信息检索聊天机器人

AI 代理教程:如何创建信息检索聊天机器人 介绍 在本教程中,我们将指导您使用 AI 代理创建用于信息检索的复杂聊天机器人的过程。探索如何利用 AI 的强大功能构建能够高效地从各种来源检索数据的聊天机器人。 设置环境 我们的计划是使用 AI 代理&…...

Linux——管理本地用户和组(详细介绍了Linux中用户和组的概念及用法)

目录 一、用户和组概念 (一)、用户的概念 (二)、组的概念 补充组 主要组 二、获取超级用户访问权限 (一)、su 命令和su -命令 ( 二)、sudo命令 三、管理本地用户账户 &…...

Flink-StarRocks详解:第三部分StarRocks分区分桶(第53天)

文章目录 前言2.3 数据分布2.3.1 数据分布概览2.3.1.1 常见的数据分布方式2.3.1.2 StarRocks的数据分布方式2.3.1.3 分区2.3.1.4 分桶 2.3.2 创建分区2.3.2.1 表达式分区2.3.2.1.1 时间函数表达式分区(自v3.1)2.3.2.1.2 列表达式分区(自v3.1&…...

8G内存的Mac够用吗 ?苹果电脑内存满了怎么清理?可以有效地管理和优化你的Mac电脑内存,确保设备运行流畅

嘿,朋友们,让咱们聊聊怎么让我们的Mac小伙伴时刻保持巅峰状态吧!想象一下,每一次点击、每一次滑动,都如同初见时那般丝滑顺畅,是不是超级心动?为了这份持久的畅快体验,我强烈推荐大家…...

【LabVIEW学习篇 - 10】:属性、调用节点

文章目录 属性节点调用节点使用方法一使用方法二案例 练习 属性节点 LabVIEW中的对象(包括控件、VI、应用程序等)都有自己的属性和方法。属性就是对象与生俱来的一些特性,可以理解成它是静态的,如控件的背景颜色,坐标…...

如何在数据埋点中发现和修复数据上报逻辑错误

如何发现和处理数据埋点中的逻辑错误 在大数据分析中,数据埋点是至关重要的一环。然而,当我们遇到数据上报逻辑错误时,该如何应对呢?本文将为你揭示解决这一棘手问题的有效方法。 目录 如何发现和处理数据埋点中的逻辑错误什么是数据上报逻辑错误?如何发现数据上报逻辑错误…...

程序员面试“八股文”:助力成长还是应试枷锁?

程序员面试“八股文”:助力成长还是应试枷锁? 引言 在当今快速迭代的IT行业中,程序员面试作为选拔人才的关键环节,其内容与形式一直备受关注。其中,“八股文”式面试题,作为一类标准化、模式化的问题集合…...

强化学习-alphazero 算法理论

一、算法简介 简单地说,AlphazeroMCTS SL(策略网络价值网络) Selfplay resnet。 其中MCTS指的是蒙特卡洛树搜索,主要用于记录所有访问过的棋盘状态的各种属性,包括该状态访问次数,对该状平均评价分数等。 SL指监督学习算法&…...

使用 Rough.js 创建动态水平条形图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 使用 Rough.js 创建动态可视化网络图 应用场景 Rough.js 是一个 JavaScript 库,它允许开发人员使用毛边风格创建可视化效果。该库适用于各种应用程序,例如: 数据可视化地图…...

Python教程(十):面向对象编程(OOP)

目录 专栏列表前言一、面向对象编程概述1.1 类和对象1.2 继承1.3 多态1.4 封装 二、Python 中的类和对象2.1 定义类2.2 __init__ 函数解释2.3 创建对象 三、继承3.1 基本继承3.2 创建子类对象 四、多态五、封装六. 访问限制七、综合实例结语 专栏列表 Python教程(一…...

CTFHUB-文件上传-文件头检查

开启题目 1.php内容&#xff1a; <?php eval($_POST[cmd]);?> 截屏截一个很小很小的图片&#xff0c;保存为 png 格式&#xff0c;把 1.png 和 1.php 放在同一文件夹&#xff0c;在此目录打开 cmd&#xff0c; 使用以下命令把 1.png 和 1.php 合成为图片马 copy 1.pn…...

网站策划书怎么写/网址ip地址查询工具

如何能够获得Extjs.grid.panel总的Columns的列数 举报| 分享| 2015-01-01 13:56linjian001 |浏览 485 次编程语言Javascript网页设计通过什么方法能够获取这个数据 var grid Ext.create(Ext.grid.GridPanel,{}); var columns grid.columns; var Length columns.length 2015-…...

农安县建设局官方网站/开发一个app软件多少钱

决策树算法ID3和C4.5实现鸾尾花分类预测ID3和C4.5算法原理简单介绍1、这两个算法差别不是特别大&#xff0c;一个是用信息增益来判断&#xff0c;一个是用信息增益率来判断&#xff0c;在sklearn库中指定 criterion“entropy” 即可&#xff0c;只是准确度不一样。2、这两个算法…...

wordpress邮件验证评论/网站推广优化排名公司

一 kafka消费端的参数 二 实现案例 2.1 订阅某个主题 创建一个独立消费者&#xff0c;消费 kafka-ljf主题中数据。 注意&#xff1a;在消费者 API 代码中必须配置消费者组 id。命令行启动消费者不填写消费者组 id 会被自动填写随机的消费者组 id。 2.消费者代码package com.lj…...

沈阳网站制作找网势科技/百度客服在线咨询

第一&#xff0c;谈谈final, finally, finalize的区别。第二&#xff0c;Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类&#xff0c;是否可以implements(实现)interface(接口)?第三&#xff0c;Static Nested Class 和 Inner Class的不同&#xff0c;说得越…...

网站明确内容/媒体:北京不再公布各区疫情数据

git地址修改需要重新clone、修改地址&#xff0c;现将方法记录如下&#xff1a; 1.Clone新地址&#xff1a; 2.在Eclipse中打开Git Respository Exploring 视图&#xff1a; 3.在左侧出现所有项目&#xff1a; 4.右键点击要修改的项目&#xff1a; 5.在选项中选择…...

做网站如何买量/设计师经常用的网站

GPIO可配置的选项&#xff1a;AM33XX_SLEWCTRL_FAST: 高速管脚 AM33XX_SLEWCTRL_SLOW: 低速管脚 AM33XX_PULL_DISA: 关闭内部上下拉 AM33XX_PIN_OUTPUT: 输出下拉 AM33XX_PIN_OUTPUT_PULLUP: 输出上拉 AM33XX_PIN_INPUT: 关闭内部上下拉,并配置成输入 AM33XX_PIN_INPUT_PULLUP:…...