A61 STM32_HAL库函数 之 TIM扩展驱动 -- C -- 所有函数的介绍及使用
A61 STM32_HAL库函数 之 TIM扩展驱动 -- C -- 所有函数的介绍及使用
- 1 该驱动函数预览
- 1.24 HAL_TIMEx_OnePulseN_Stop
- 1.25 HAL_TIMEx_OnePulseN_Start_IT
- 1.26 HAL_TIMEx_OnePulseN_Stop_IT
- 1.27 HAL_TIMEx_ConfigCommutationEvent
- 1.28 HAL_TIMEx_ConfigCommutationEvent_IT
- 1.29 HAL_TIMEx_ConfigCommutationEvent_DMA
- 1.30 HAL_TIMEx_ConfigBreakDeadTime
- 1.31 HAL_TIMEx_MasterConfigSynchronization
- 1.32 HAL_TIMEx_CommutationCallback
- 1.33 HAL_TIMEx_BreakCallback
- 1.34 TIMEx_DMACommutationCplt
- 1.35 HAL_TIMEx_HallSensor_GetState
- 该文档修改记录:
- 总结
1 该驱动函数预览
| 序号 | 函数名 | 描述 |
|---|---|---|
| 1 | HAL_TIMEx_HallSensor_Init() | 初始化定时器霍尔传感器模式。 |
| 2 | HAL_TIMEx_HallSensor_DeInit() | 反初始化定时器霍尔传感器模式。 |
| 3 | HAL_TIMEx_HallSensor_MspInit() | 初始化定时器霍尔传感器模式相关的MCU外设引脚或资源。 |
| 4 | HAL_TIMEx_HallSensor_MspDeInit() | 反初始化定时器霍尔传感器模式相关的MCU外设引脚或资源。 |
| 5 | HAL_TIMEx_HallSensor_Start() | 启动定时器霍尔传感器模式。 |
| 6 | HAL_TIMEx_HallSensor_Stop() | 停止定时器霍尔传感器模式。 |
| 7 | HAL_TIMEx_HallSensor_Start_IT() | 启动定时器霍尔传感器模式中断。 |
| 8 | HAL_TIMEx_HallSensor_Stop_IT() | 停止定时器霍尔传感器模式中断。 |
| 9 | HAL_TIMEx_HallSensor_Start_DMA() | 启动定时器霍尔传感器模式DMA传输。 |
| 10 | HAL_TIMEx_HallSensor_Stop_DMA() | 停止定时器霍尔传感器模式DMA传输。 |
| 11 | HAL_TIMEx_OCN_Start() | 启动定时器OCN功能。 |
| 12 | HAL_TIMEx_OCN_Stop() | 停止定时器OCN功能。 |
| 13 | HAL_TIMEx_OCN_Start_IT() | 启动定时器OCN功能中断。 |
| 14 | HAL_TIMEx_OCN_Stop_IT() | 停止定时器OCN功能中断。 |
| 15 | HAL_TIMEx_OCN_Start_DMA() | 启动定时器OCN功能DMA传输。 |
| 16 | HAL_TIMEx_OCN_Stop_DMA() | 停止定时器OCN功能DMA传输。 |
| 17 | HAL_TIMEx_PWMN_Start() | 启动定时器PWMN功能。 |
| 18 | HAL_TIMEx_PWMN_Stop() | 停止定时器PWMN功能。 |
| 19 | HAL_TIMEx_PWMN_Start_IT() | 启动定时器PWMN功能中断。 |
| 20 | HAL_TIMEx_PWMN_Stop_IT() | 停止定时器PWMN功能中断。 |
| 21 | HAL_TIMEx_PWMN_Start_DMA() | 启动定时器PWMN功能DMA传输。 |
| 22 | HAL_TIMEx_PWMN_Stop_DMA() | 停止定时器PWMN功能DMA传输。 |
| 23 | HAL_TIMEx_OnePulseN_Start() | 启动定时器单脉冲N功能。 |
| 24 | HAL_TIMEx_OnePulseN_Stop() | 停止定时器单脉冲N功能。 |
| 25 | HAL_TIMEx_OnePulseN_Start_IT() | 启动定时器单脉冲N功能中断。 |
| 26 | HAL_TIMEx_OnePulseN_Stop_IT() | 停止定时器单脉冲N功能中断。 |
| 27 | HAL_TIMEx_ConfigCommutationEvent() | 配置定时器换相事件。 |
| 28 | HAL_TIMEx_ConfigCommutationEvent_IT() | 配置定时器换相事件并启用中断。 |
| 29 | HAL_TIMEx_ConfigCommutationEvent_DMA() | 配置定时器换相事件DMA传输。 |
| 30 | HAL_TIMEx_ConfigBreakDeadTime() | 配置定时器死区和断路器。 |
| 31 | HAL_TIMEx_MasterConfigSynchronization() | 配置定时器主模式同步。 |
| 32 | HAL_TIMEx_CommutationCallback() | 定时器换相回调函数。 |
| 33 | HAL_TIMEx_BreakCallback() | 定时器断路器回调函数。 |
| 34 | TIMEx_DMACommutationCplt() | 定时器换相DMA传输完成回调函数。 |
| 35 | HAL_TIMEx_HallSensor_GetState() | 获取定时器霍尔传感器模式状态。 |
1.24 HAL_TIMEx_OnePulseN_Stop
| 函数名 | HAL_TIMEx_OnePulseN_Stop |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel) |
| 功能描述 | 停止TIM通道的单脉冲模式 |
| 输入参数 | htim:TIM句柄结构体指针 |
| Channel:通道编号 | |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:停止状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| HAL_TIMEx_OnePulseN_Stop(&htim, TIM_CHANNEL_1); | |
| ``` |
1.25 HAL_TIMEx_OnePulseN_Start_IT
| 函数名 | HAL_TIMEx_OnePulseN_Start_IT |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel) |
| 功能描述 | 以中断方式启动TIM通道的单脉冲模式 |
| 输入参数 | htim:TIM句柄结构体指针 |
| Channel:通道编号 | |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:启动状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| HAL_TIMEx_OnePulseN_Start_IT(&htim, TIM_CHANNEL_1); | |
| ``` |
1.26 HAL_TIMEx_OnePulseN_Stop_IT
| 函数名 | HAL_TIMEx_OnePulseN_Stop_IT |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel) |
| 功能描述 | 以中断方式停止TIM通道的单脉冲模式 |
| 输入参数 | htim:TIM句柄结构体指针 |
| Channel:通道编号 | |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:停止状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| HAL_TIMEx_OnePulseN_Stop_IT(&htim, TIM_CHANNEL_1); | |
| ``` |
|
1.27 HAL_TIMEx_ConfigCommutationEvent
| 函数名 | HAL_TIMEx_ConfigCommutationEvent |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent(TIM_HandleTypeDef *htim, uint32_t CommutationSource, uint32_t CommutationPolarity) |
| 功能描述 | 配置TIM的换向事件 |
| 输入参数 | htim:TIM句柄结构体指针 |
| CommutationSource:换向源 | |
| CommutationPolarity:换向极性 | |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:配置状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| HAL_TIMEx_ConfigCommutationEvent(&htim, TIM_TS_ETRF); | |
| ``` |
1.28 HAL_TIMEx_ConfigCommutationEvent_IT
| 函数名 | HAL_TIMEx_ConfigCommutationEvent_IT |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent_IT(TIM_HandleTypeDef *htim, uint32_t CommutationSource, uint32_t CommutationPolarity) |
| 功能描述 | 配置TIM的换向事件,并以中断方式触发 |
| 输入参数 | htim:TIM句柄结构体指针 |
| CommutationSource:换向源 | |
| CommutationPolarity:换向极性 | |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:配置状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| HAL_TIMEx_ConfigCommutationEvent_IT(&htim, TIM_TS_ETRF); | |
| ``` |
1.29 HAL_TIMEx_ConfigCommutationEvent_DMA
| 函数名 | HAL_TIMEx_ConfigCommutationEvent_DMA |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent_DMA(TIM_HandleTypeDef *htim, uint32_t CommutationSource, uint32_t CommutationPolarity) |
| 功能描述 | 配置TIM的换向事件,并以DMA方式触发 |
| 输入参数 | htim:TIM句柄结构体指针 |
| CommutationSource:换向源 | |
| CommutationPolarity:换向极性 | |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:配置状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| HAL_TIMEx_ConfigCommutationEvent_DMA(&htim, TIM_TS_ETRF); | |
| ``` |
1.30 HAL_TIMEx_ConfigBreakDeadTime
| 函数名 | HAL_TIMEx_ConfigBreakDeadTime |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim, TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig) |
| 功能描述 | 配置TIM的死区时间和断路器 |
| 输入参数 | htim:TIM句柄结构体指针 |
| sBreakDeadTimeConfig:死区时间和断路器配置结构体指针 | |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:配置状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; | |
| HAL_TIMEx_ConfigBreakDeadTime(&htim, &sBreakDeadTimeConfig); | |
| ``` |
1.31 HAL_TIMEx_MasterConfigSynchronization
| 函数名 | HAL_TIMEx_MasterConfigSynchronization |
|---|---|
| 函数原形 | HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,TIM_MasterConfigTypeDef *sMasterConfig) |
| 功能描述 | 配置TIM主从同步 |
| 输入参数 | htim:TIM句柄结构体指针 |
| | sMasterConfig:主从同步配置结构体指针 |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:配置状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | c | | | TIM_HandleTypeDef htim; | | | TIM_MasterConfigTypeDef sMasterConfig; | | | HAL_TIMEx_MasterConfigSynchronization(&htim, &sMasterConfig); | | |
1.32 HAL_TIMEx_CommutationCallback
| 函数名 | HAL_TIMEx_CommutationCallback |
|---|---|
| 函数原形 | void HAL_TIMEx_CommutationCallback(TIM_HandleTypeDef *htim) |
| 功能描述 | TIM换向事件的回调函数 |
| 输入参数 | htim:TIM句柄结构体指针 |
| 输出参数 | 无 |
| 返回值 | 无 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | 无 |
1.33 HAL_TIMEx_BreakCallback
| 函数名 | HAL_TIMEx_BreakCallback |
|---|---|
| 函数原形 | void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) |
| 功能描述 | TIM断路器事件的回调函数 |
| 输入参数 | htim:TIM句柄结构体指针 |
| 输出参数 | 无 |
| 返回值 | 无 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | 无 |
1.34 TIMEx_DMACommutationCplt
| 函数名 | TIMEx_DMACommutationCplt |
|---|---|
| 函数原形 | void TIMEx_DMACommutationCplt(TIM_HandleTypeDef *htim) |
| 功能描述 | TIM换向事件的DMA传输完成回调函数 |
| 输入参数 | htim:TIM句柄结构体指针 |
| 输出参数 | 无 |
| 返回值 | 无 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | 无 |
1.35 HAL_TIMEx_HallSensor_GetState
| 函数名 | HAL_TIMEx_HallSensor_GetState |
|---|---|
| 函数原形 | uint32_t HAL_TIMEx_HallSensor_GetState(TIM_HandleTypeDef *htim) |
| 功能描述 | 获取TIM外部霍尔传感器模式的状态 |
| 输入参数 | htim:TIM句柄结构体指针 |
| 输出参数 | 无 |
| 返回值 | uint32_t:外部霍尔传感器模式的状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |
| 案例 | ```c |
| TIM_HandleTypeDef htim; | |
| uint32_t state = HAL_TIMEx_HallSensor_GetState(&htim); | |
| ``` |
该文档修改记录:
| 修改时间 | 修改说明 |
|---|---|
| 2024年4月30日 | 第一次发布,介绍了该博客驱动所有函数的介绍及使用 |
总结
以上就是该博客驱动所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。
相关文章:
A61 STM32_HAL库函数 之 TIM扩展驱动 -- C -- 所有函数的介绍及使用
A61 STM32_HAL库函数 之 TIM扩展驱动 -- C -- 所有函数的介绍及使用 1 该驱动函数预览1.24 HAL_TIMEx_OnePulseN_Stop1.25 HAL_TIMEx_OnePulseN_Start_IT1.26 HAL_TIMEx_OnePulseN_Stop_IT1.27 HAL_TIMEx_ConfigCommutationEvent1.28 HAL_TIMEx_ConfigCommutationEvent_IT1.29 …...
使用瀚高数据库开发管理工具进行数据的备份与恢复---国产瀚高数据库工作笔记008
使用瀚高数据库,备份 恢复数据 然后找到对应的目录 其实就是hgdbdeveloper,瀚高的数据库开发管理工具 对应的包中有个dbclient 这个目录,选中这个目录以后,就可以了,然后 在对应的数据库,比如 data_middle 中,选中 某个模式,比如bigdata_huiju 然后右键进行,点击 恢复,然…...
css 选择器汇总
目录 所有选择器伪类选择器 所有选择器 选择器用法id选择器#myid类选择器.myclassname标签选择器div,h1,p相邻选择器h1p子选择器ul > li后代选择器li a通配符选择器*属性选择器a[rel“external”]伪类选择器a:hover, li:nth-child 伪类选择器 在CSS3中新增了一个结构伪类选…...
My Greedy Algorithm(贪心算法)之路(一)
引子:我们之前,其实也遇到过贪心算法,0,1背包就是一个典型的贪心算法问题,那今天我就来开始my-Greedy Algorithm的道路。 什么是贪心算法? 我愿称贪心算法为贪婪鼠目寸光,贪心算法(Greedy Alg…...
Win11 Python3.10 安装pytorch3d
0,背景 Python3.10、cuda 11.7、pytorch 2.0.1 阅读【深度学习】【三维重建】windows10环境配置PyTorch3d详细教程-CSDN博客 1,解决方法 本来想尝试,结果发现CUB安装配置对照表里没有cuda 11.7对应的版本,不敢轻举妄动&#x…...
kotlin 中 string array 怎么表示
在 Kotlin 中,字符串数组可以使用 Array<String> 类型表示。你可以通过多种方式来创建和初始化字符串数组。以下是几种常见的方法: 使用 arrayOf 函数: val stringArray arrayOf("Hello", "World", "Kotli…...
ffmpeg使用bmp编码器把bgr24编码为bmp图像
version #define LIBAVCODEC_VERSION_MAJOR 60 #define LIBAVCODEC_VERSION_MINOR 15 #define LIBAVCODEC_VERSION_MICRO 100 note 不使用AVOutputFormat code void CFfmpegOps::EncodeBGR24ToBMP(const char* infile, const char* width_str, const char* height_str…...
基于YOLOv10+YOLOP+PYQT的可视化系统,实现多类别目标检测+可行驶区域分割+车道线分割【附代码】
文章目录 前言视频效果必要环境一、代码结构1、 训练参数解析2、 核心代码解析1.初始化Detector类2. torch.no_grad()3. 复制输入图像并初始化计数器4. 调用YOLOv10模型进行目标检测5. 提取检测结果信息6. 遍历检测结果并在图像上绘制边界框和标签7. 准备输入图像以适应End-to-…...
计算机网络之令牌总线
上文内容:什么是以太网 1.令牌总线工作原理 在总线的基础上,通过在网络结点之间有序地传递令牌来分配各结点对共享型总线的访问权利,形成闭合的逻辑环路。 完全采用半双工的操作方式,只有获得令牌的结点才能发送信息ÿ…...
策略模式的应用
前言 系统有一个需求就是采购员审批注册供应商的信息时,会生成一个供应商的账号,此时需要发送供应商的账号信息(账号、密码)到注册填写的邮箱中,通知供应商账号信息,当时很快就写好了一个工具类࿰…...
如何使用uer做多分类任务
如何使用uer做多分类任务 语料集下载 找到这里点击即可 里面是这有json文件的 因此我们对此要做一些处理,将其转为tsv格式 # -*- coding: utf-8 -*- import json import csv import chardet# 检测文件编码 def detect_encoding(file_path):with open(file_path,…...
【HICE】转发服务器实验
1.在本地主机上操作 2.在客户端操作设置主机的IP地址为dns 3.测试,客户机是否能ping通...
MATLAB-分类CPO-RF-Adaboost冠豪猪优化器(CPO)优化RF随机森林结合Adaboost分类预测(二分类及多分类)
MATLAB-分类CPO-RF-Adaboost冠豪猪优化器(CPO)优化RF随机森林结合Adaboost分类预测(二分类及多分类) 分类CPO-RF-Adaboost冠豪猪优化器(CPO)优化RF随机森林结合Adaboost分类预测(二分类及多分类…...
绝区贰--及时优化降低 LLM 成本和延迟
前言 大型语言模型 (LLM) 为各行各业带来了变革性功能,让用户能够利用尖端的自然语言处理技术处理各种应用。然而,这些强大的 AI 系统的便利性是有代价的 — 确实如此。随着 LLM 变得越来越普及,其计算成本和延迟可能会迅速增加,…...
JDBC【封装工具类、SQL注入问题】
day54 JDBC 封装工具类01 创建配置文件 DBConfig.properties driverNamecom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/qnz01?characterEncodingutf8&serverTimezoneUTC usernameroot passwordroot新建配置文件,不用写后缀名 创建工具类 将变…...
Windows打开redis以及Springboot整合redis
目录 前言Windows系统打开redisSpringboot整合redis依赖实体类yml配置文件config配置各个数据存储类型分别说明记录string数据写入redis,并查询通过命令行查询 list插入数据到redis中从redis中读取命令读取数据 hash向redis中逐个添加map键值对获取key对应的map中所…...
MySQL使用LIKE索引是否失效的验证
1、简单的示例展示 在MySQL中,LIKE查询可以通过一些方法来使得LIKE查询能够使用索引。以下是一些可以使用的方法: 使用前导通配符(%),但确保它紧跟着一个固定的字符。 避免使用后置通配符(%)&…...
封装日历uniapp,只显示年月不显示日
默认展示最新日期 子组件 <template><view class"date-picker"><picker mode"date" fields"month" change"onDateChange" :value"selectedDate"><view class"picker">{{ selectedDate…...
golang线程池ants-实现架构
1、总体架构 ants协程池,在使用上有多种方式(使用方式参考这篇文章:golang线程池ants-四种使用方法),但是在实现的核心就一个,如下架构图: 总的来说,就是三个数据结构: Pool、WorkerStack、goW…...
Mysql面试合集
概念 是一个开源的关系型数据库。 数据库事务及其特性 事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。 事务特性: (1)原子性:即不可分割性,事务要么全部被执行,要么就…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
