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

FreeRTOS任务管理与通信机制详解

1 任务的创建与管理

任务创建

使用 xTaskCreate() 创建任务:

 

BaseType_t xTaskCreate(
    TaskFunction_t pxTaskCode,     // 任务函数(入口)
    const char * const pcName,     // 任务名称(调试用)
    configSTACK_DEPTH_TYPE usStackDepth, // 堆栈大小(单位为字)
    void * const pvParameters,     // 任务参数
    UBaseType_t uxPriority,        // 优先级(0~configMAX_PRIORITIES-1)
    TaskHandle_t * const pxCreatedTask // 任务句柄(可为NULL)
);
 

注意:任务函数必须符合 void (*TaskFunction_t)(void *) 的原型。

任务删除

 

vTaskDelete(TaskHandle_t xTaskToDelete);

可删除任意任务,包括自身(传入 NULL)。

任务挂起与唤醒

  • 挂起任务:vTaskSuspend(TaskHandle_t xTask);

  • 唤醒任务:vTaskResume(TaskHandle_t xTask);

用于控制任务的执行时机,但需要避免任务永久挂起导致系统资源浪费。


2 队列(Queue)

定义

队列是典型的FIFO(先进先出)数据结构,用于任务间或中断与任务之间的数据通信。

创建队列

 

QueueHandle_t xQueueCreate(UBaseType_t uxQueueLength, UBaseType_t uxItemSize);

  • uxQueueLength:队列能容纳的最大项目数

  • uxItemSize:每个项目的大小(字节)

发送数据到队列

 

xQueueSend(xQueue, pvItemToQueue, xTicksToWait);

  • xTicksToWait = 0:非阻塞发送

  • portMAX_DELAY:阻塞直到成功(需要开启阻塞API支持)

从队列接收数据

 

xQueueReceive(xQueue, pvBuffer, xTicksToWait);


3 信号量(Semaphore)

信号量用于任务之间的同步与资源访问控制。FreeRTOS 提供多种类型的信号量:

1. 二值信号量

用于同步事件或中断信号(如“电话亭”模型)。

  • 创建:xSemaphoreCreateBinary();

  • 获取:xSemaphoreTake(xSemaphore, xBlockTime);

  • 释放:xSemaphoreGive(xSemaphore);

特点:同一任务在未释放时无法再次获取。

2. 互斥信号量(Mutex)

适用于保护共享资源的访问(如外设、内存等),防止资源冲突。

  • 创建:xSemaphoreCreateMutex();

特性:只有获得互斥锁的任务才能释放,错误释放会引发死锁。

3. 计数型信号量

用于资源计数或控制并发数量(如“停车位”模型)。

  • 创建:xSemaphoreCreateCounting(uxMaxCount, uxInitialCount);

  • 当前剩余资源数:uxSemaphoreGetCount(xSemaphore);

4. 递归互斥信号量

允许任务在同一段逻辑中多次获取锁,每次获取必须匹配对应释放。

  • 创建:xSemaphoreCreateRecursiveMutex();

  • 获取:xSemaphoreTakeRecursive(xMutex, xBlockTime);

  • 释放:xSemaphoreGiveRecursive(xMutex);


1.4.4 软件定时器(Software Timer)

软件定时器用于延迟或周期性执行某些任务函数,非阻塞式。

创建软件定时器

 

TimerHandle_t xTimerCreate(
    const char * const pcTimerName,
    TickType_t xTimerPeriodInTicks,
    UBaseType_t uxAutoReload,           // pdTRUE: 周期性;pdFALSE: 单次
    void * const pvTimerID,
    TimerCallbackFunction_t pxCallbackFunction // 定时器回调
);
 

定时器启动需要调用 xTimerStart()。系统时间片通过 configTICK_RATE_HZ 定义(常设为 1000,即1ms一tick)。


5 事件标志组(Event Group)

事件标志组提供位操作机制,适用于多事件同步(例如 KEY1 & KEY2 -> LED1_ON)。

创建与设置

  • 创建:xEventGroupCreate();

  • 设置标志位:xEventGroupSetBits(xEventGroup, uxBitsToSet);

等待事件位满足

 

xEventGroupWaitBits( xEventGroup, uxBitsToWaitFor, xClearOnExit, // 是否在退出时清除标志位 xWaitForAllBits, // 全部满足 vs 任一满足 xTicksToWait );


1.4.6 任务通知(Task Notification)

任务通知是一种轻量级的通信机制,比队列和信号量更高效(最多支持32位通知值)。

发送通知(中断中)

 

xTaskNotifyFromISR(xTaskToNotify, ulValue, eAction, pxHigherPriorityTaskWoken);

  • ulValue:通知值

  • eAction:通知模式(如覆盖、累加)

  • pxHigherPriorityTaskWoken:用于中断上下文切换判断

等待通知

 

xTaskNotifyWait( ulBitsToClearOnEntry, ulBitsToClearOnExit, pulNotificationValue, xTicksToWait );

使用任务通知可高效地替代传统信号量、事件等机制。


附:常用FreeRTOS配置参数说明

宏定义含义
configMAX_PRIORITIES最大优先级数(通常为5或更高)
configMINIMAL_STACK_SIZE任务最小栈大小(128即为512字节)
configMAX_TASK_NAME_LEN任务名最大长度(常为16)
configTICK_RATE_HZ

下面是一个完整、结构清晰的 FreeRTOS Demo 示例代码,包含了任务创建、启动任务调度的基本流程,适合初学者参考:


✅ 示例:FreeRTOS任务创建与调度启动(主函数中)

#include "FreeRTOS.h"
#include "task.h"
#include <stdio.h>// 任务句柄(可选)
TaskHandle_t Task1Handle = NULL;
TaskHandle_t Task2Handle = NULL;// 任务函数定义
void Task1(void *pvParameters)
{while (1){printf("Task 1 is running...\n");vTaskDelay(pdMS_TO_TICKS(1000));  // 延时1000ms}
}void Task2(void *pvParameters)
{while (1){printf("Task 2 is running...\n");vTaskDelay(pdMS_TO_TICKS(500));  // 延时500ms}
}// 主函数
int main(void)
{// 创建任务1xTaskCreate(Task1,                   // 任务函数"Task1",                 // 任务名(调试用)128,                     // 堆栈大小(单位为字,128 x 4 = 512字节)NULL,                    // 参数2,                       // 优先级(范围:0 ~ configMAX_PRIORITIES-1)&Task1Handle             // 任务句柄);// 创建任务2xTaskCreate(Task2,"Task2",128,NULL,1,                       // 优先级低于Task1&Task2Handle);// 启动任务调度器vTaskStartScheduler();// 永远不会运行到这里,除非堆栈不足或调度器启动失败while (1);
}

🔍 说明

  • xTaskCreate():注册任务并准备调度,必须在 vTaskStartScheduler() 前调用。

  • vTaskDelay():实现任务延时,使用 pdMS_TO_TICKS() 宏可避免硬编码。

  • vTaskStartScheduler():启动调度器,之后 FreeRTOS 会自动管理任务切换。

相关文章:

FreeRTOS任务管理与通信机制详解

1 任务的创建与管理 任务创建 使用 xTaskCreate() 创建任务&#xff1a; BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 任务函数&#xff08;入口&#xff09; const char * const pcName, // 任务名称&#xff08;调试用&#xff09; config…...

哈希表笔记(二)redis

Redis哈希表实现分析 这份代码是Redis核心数据结构之一的字典(dict)实现&#xff0c;本质上是一个哈希表的实现。Redis的字典结构被广泛用于各种内部数据结构&#xff0c;包括Redis数据库本身和哈希键类型。 核心特点 双表设计&#xff1a;每个字典包含两个哈希表&#xff0…...

专题二十一:无线局域网——WLAN

一、WLAN简介 WLAN&#xff08;Wireless Local Area Network &#xff09;无线局域网&#xff0c;使用的是 IEEE 802.11 标准系列。 标准版本发布年份最大传输速率频段Wi-Fi代数特点/描述IEEE 802.1119971–2 Mbps2.4 GHzWi-Fi 0最早的无线局域网标准&#xff0c;传输速率低&…...

例数据中关键指标对应的SQL查询模板

以下是针对示例数据中关键指标对应的SQL查询模板&#xff0c;包含MySQL和PostgreSQL两种版本&#xff1a; 1. 订单处理系统指标查询 1.1 订单处理成功率 -- MySQL SELECT DATE_FORMAT(created_at, %Y-%m-%d %H:%i:00) AS time_window,COUNT(*) AS total_orders,SUM(CASE WHE…...

【业务领域】电脑主板芯片电路结构

前言 由前几期视频合集(零基础自学计算机故障排除—7天了解计算机开机过程)&#xff0c;讲解了POST的主板软启动过程&#xff1b;有不少网友留言、私信来问各种不开机的故障&#xff0c;但大多网友没能能过我们的这合集视频&#xff0c;很好的理清思路&#xff0c;那这样的情况…...

利用无事务方式插入数据库解决并发插入问题

一、背景 由于项目中同一个网元&#xff0c;可能会被多个不同用户操作&#xff0c;而且操作大部分都是以异步子任务形式进行执行&#xff0c;这样就会带来并发写数据问题&#xff0c;本文通过利用无事务方式插入数据库解决并发插入问题&#xff0c;算是解决问题的一种思路&…...

数字智慧方案6166丨智慧医养结合大数据平台方案(50页PPT)(文末有下载方式)

数字智慧方案6166丨智慧医养结合大数据平台方案 详细资料请看本解读文章的最后内容。 引言 随着人口老龄化的加剧&#xff0c;智慧医养结合的需求日益迫切。本文将对《数字智慧方案6166丨智慧医养结合大数据平台方案》进行详细解读&#xff0c;探讨如何通过大数据和人工智能…...

数字智慧方案5974丨智慧农业大数据应用平台综合解决方案(79页PPT)(文末有下载方式)

详细资料请看本解读文章的最后内容。 资料解读&#xff1a;智慧农业大数据应用平台综合解决方案 在当今数字化时代&#xff0c;智慧农业成为农业发展的新趋势&#xff0c;对提升农业生产效率、保障农产品质量、推动农业可持续发展意义重大。这份《智慧农业大数据应用平台综合解…...

补题( Convolution, 二维卷积求输出矩阵元素和最大值)

来源&#xff1a;https://codeforces.com/gym/105231/problem/H 题目描述&#xff1a; 一、题目分析 本题涉及深度学习中的二维卷积操作。给定一个nm的二维输入矩阵I和一个kl的核矩阵K &#xff0c;通过特定公式计算得到(n - k 1)(m - l 1)的输出矩阵O &#xff0c;要求在…...

聊一聊接口测试如何处理鉴权

目录 一、常见鉴权方式及测试方法 1. Basic Auth 2. Token 鉴权 3. OAuth 2.0 4. JWT (JSON Web Token) 5. API Key 6. HMAC 签名 7.Session-Cookie 认证 二、接口测试中的鉴权实践 1. 工具示例&#xff08;Postman&#xff09; 2. 代码示例&#xff08;Python Requ…...

第 2.3 节: 基于 Python 的关节空间与任务空间控制

在机器人控制领域&#xff0c;我们通常关心两个主要的“空间”&#xff1a;关节空间&#xff08;Joint Space&#xff09;和任务空间&#xff08;Task Space&#xff0c;也常称为操作空间 Operational Space&#xff09;。关节空间描述了机器人各关节的角度或位置集合&#xff…...

[更新完毕]2025东三省A题深圳杯A题数学建模挑战赛数模思路代码文章教学:热弹性物理参数估计

完整内容请看文章最下面的推广群 热弹性物理参数估计 摘要 随着现代电子设备向高性能、微型化方向发展&#xff0c;芯片封装结构面临着日益严峻的热机械可靠性挑战。BGA&#xff08;球栅阵列&#xff09;和QFN&#xff08;四方扁平无引脚&#xff09;作为两种主流封装形式&am…...

【大模型面试每日一题】Day 5:GQA vs MHA效率对比

【大模型面试每日一题】Day 5&#xff1a;GQA vs MHA效率对比 &#x1f4cc; 题目重现 &#x1f31f;&#x1f31f; 面试官&#xff1a;最近一些研究&#xff08;如LLaMA、Mixtral&#xff09;采用Grouped-Query Attention&#xff08;GQA&#xff09;代替传统的Multi-Head A…...

【c语言】字符函数和字符串函数

目录 1.函数介绍 1.1 strlen 1.2 strcpy 1.3 strcat 1.4 strcmp 1.5 strncpy 1.6 strncat 1.7 strncmp 1.8 strstr 1.9 strtok 1.10 strerror 1.11 memcpy 1.12 memmove 1.13 memset ​编辑 1.14 memcmp C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有…...

使用 MCP(模型上下文协议)和 Claude 在 Node.js 中构建聊天应用程序

大家好&#xff0c;这里是架构资源栈&#xff01;点击上方关注&#xff0c;添加“星标”&#xff0c;一起学习大厂前沿架构&#xff01; 使用 Node.js 中的 MCP&#xff08;模型上下文协议&#xff09;构建聊天应用程序 我最近开发了一个简单的聊天应用程序&#xff0c;允许 …...

B站Michale_ee——ESP32_IDF SDK——FreeRTOS_2 队列

一、通过队列传递三种类型数据&#xff08;整型、结构体、指针&#xff09; 1.队列简介 FreeRTOS中的队列本质就是一个先入先出的缓冲区&#xff08;FIFO&#xff0c;First Input First Output&#xff09; 2.API简介 &#xff08;1&#xff09;创建队列的API &#xff08…...

小米MiMo:7B模型逆袭AI大模型战场的技术密码

小米MiMo&#xff1a;7B模型逆袭AI大模型战场的技术密码 在大模型竞争愈发激烈的2025年4月30日&#xff0c;小米以一款名为 MiMo-7B 的开源模型强势突围&#xff0c;在数学推理与代码能力评测中表现亮眼&#xff0c;不仅与规模更大的模型正面对抗&#xff0c;甚至超越了 OpenA…...

Java关键字解析

Java关键字是编程语言中具有特殊含义的保留字&#xff0c;不能用作标识符&#xff08;如变量名、类名等&#xff09;。Java共有50多个关键字&#xff08;不同版本略有差异&#xff09;&#xff0c;下面我将分类详细介绍这些关键字及其使用方式。 一、数据类型相关关键字 1. 基…...

YOLOv8模型训练过程

一&#xff0c;conda环境的创建就略过了 先进行库工具安装 pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple 二&#xff0c;在github上下载好模型&#xff0c;先预测一把 yolo predict modelyolov8n.pt sourceultralytics/assets/bus.jpg 如果无…...

1996-2022年全国31省ZF干预度数据/财政干预度数据(含原始数据+计算过程+结果)

1996-2022年全国31省ZF干预度数据/财政干预度数据&#xff08;含原始数据计算过程结果&#xff09; 1、时间&#xff1a;1996-2022年 2、来源&#xff1a;国家统计局和各省年鉴 3、指标&#xff1a;地方财政一般预算支出、地区生产总值&#xff08;GDP&#xff09;、ZF干预度…...

STM32移植U8G2

STM32 移植 U8G2 u8g2 &#xff08;Universal 8bit Graphics Library version2 的缩写&#xff09;是用于嵌入式设备的单色图形库&#xff0c;可以在单色屏幕中绘制 GUI。u8g2 内部附带了例如 SSD13xx&#xff0c;ST7xx 等很多 OLED&#xff0c;LCD 驱动。内置多种不同大小和风…...

26.电流信号的强抗干扰能力运用

电流信号强抗干扰能力运用 1. 电流型信号与电压型信号的传输抗干扰能力差异2. 电流型信号电路示例 1. 电流型信号与电压型信号的传输抗干扰能力差异 现场干扰以电场干扰为主&#xff0c;电压较高但是能量&#xff08;电流I&#xff09;较低。如果以能量信号作为传输媒介&#x…...

【 Node.js】 Node.js安装

下载 下载 | Node.js 中文网https://nodejs.cn/download/ 安装 双击安装包 点击Next 勾选使用许可协议&#xff0c;点击Next 选择安装位置 点击Next 点击Next 点击Install 点击Finish 完成安装 添加环境变量 编辑【系统变量】下的变量【Path】添加Node.js的安装路径--如果…...

经典算法 青蛙跳杯子

青蛙跳杯子 题目描述 桌子上有n行m列的杯子&#xff0c;每个杯子与相邻杯子之间的距离为1&#xff0c;已知青蛙的跳跃半径为d&#xff0c;青蛙现在在第一行第一列的杯子上&#xff0c;它跳到最后一行最后一列的杯子上&#xff0c;最少需要跳几次&#xff1f; 输入描述 输入…...

C语言-函数的递归和迭代

以下是我初学C语言的笔记记录&#xff0c;欢迎在评论区补充留言 一&#xff0c;函数的递归 大致有这么几个问题【我看完这堂课后&#xff0c;自己总结的几个问题】 * 问题 1&#xff0c;什么是函数的递归, 2&#xff0c;它是干什么用的&#xff0c;3&#xff0c;有什么条件吗…...

Linux安装部署Postgresql数据库

联网安装方案 Linux能在线安装依赖组件的前提下&#xff0c;可以快速安装部署PG数据库&#xff0c;安装过程使用root管理员帐号&#xff1a; 首先&#xff0c;使用如下命令自动下载Postgresql组件&#xff1a; # 在openEuler、Fedora或CentOS 8上&#xff0c;你可能会使用&a…...

学习与规划的融合Dyna-Q:python从零实现

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…...

电子病历高质量语料库构建方法与架构项目(环境聆听与自动化文档生成篇)

电子病历高质量语料库的构建是一个复杂而系统的工程,涉及数据收集、清洗、标注、验证等多个环节。在项目实施过程中,"环境聆听"和"自动化文档生成"是两个关键支撑要素,前者确保项目能够适应不断变化的技术和业务环境,后者则保障项目过程的可追溯性和知…...

LegalOne:本土与国际视野融合的法律评级,大湾区律师及律师事务所榜单申报启动

在广东这片法律服务发展的热土上&#xff0c;从1979年全国首家法律服务机构诞生&#xff0c;到如今培育出4700家律所与8.7万律师&#xff0c;法律行业始终蓬勃向前。随着粤港澳大湾区建设推进&#xff0c;法律服务市场迈向双向融合的国际化新阶段&#xff0c;众多优秀律所和律师…...

突破传统!TTRL如何开启大模型无监督强化学习新篇章?

在大语言模型&#xff08;LLMs&#xff09;蓬勃发展的时代&#xff0c;如何让模型在无明确标签数据下有效学习成为关键难题。本文提出的Test-Time Reinforcement Learning&#xff08;TTRL&#xff09;给出了创新解法。它利用多数投票估计奖励&#xff0c;实现LLMs自我进化&…...

什么是:云边端一体化架构

什么是云边端一体化架构 文章目录 什么是云边端一体化架构云、边、端云计算边缘计算终端设备 云边端一体化协同云边端一体化架构协同的流程云边端一体化架构协同的应用云边端一体化架构协同的价值云边端一体化架构协同未来发展趋势 云、边、端 云&#xff08;Cloud&#xff09…...

【2025域适应科研日报】

本笔记主要为了记录自己的科研日报&#xff0c;前段时间刚开始想写的初衷也是为了自己的思考不跑偏&#xff0c;但是有几天又没有坚持下来&#xff0c;看到一位学长的文章&#xff0c;发现这种形式还是很有必要的&#xff0c;所以自己也打算坚持记录下来&#xff0c;由于还正在…...

Linux从入门到精通:全面掌握基础命令与高效操作实战指南

引言 Linux 作为开发者、运维工程师及技术爱好者的核心工具&#xff0c;其命令行的高效性与灵活性无可替代。但对于新手而言&#xff0c;复杂的命令与文件结构往往令人困惑。本文基于官方文档与实践经验&#xff0c;系统梳理 Linux 基础命令、文件管理、目录操作、高级技巧 四大…...

如何提升个人的稳定性?

提升自我的稳定性是一个系统性工程&#xff0c;需要从内在认知、情绪管理、行为习惯到外在环境等多个维度进行优化。 以下是一些具体建议&#xff0c;帮助你逐步增强内心的稳定感&#xff1a; 一、内在认知调整 1. 建立清晰的自我认知 通过反思&#xff08;如写日记、冥想…...

电机常用易混淆概念说明(伺服、舵机、多轮)

1. 概述 基础动力需求 &#xff1a;普通电机&#xff08;如水泵、风扇&#xff09;。 高精度控制 &#xff1a;优先伺服系统或伺服电机&#xff08;如数控机床&#xff09;。 微型化场景 &#xff1a;舵机&#xff08;如遥控模型&#xff09;。 移动底盘 &#xff1a;单舵轮成…...

短视频矩阵系统:源码搭建与定制化开发的深度剖析

在短视频行业蓬勃发展的当下&#xff0c;越来越多的企业和个人希望构建自己的短视频矩阵系统。而在搭建过程中&#xff0c;源码搭建和定制化开发是两种常见的选择&#xff0c;它们各有优劣&#xff0c;适用于不同的需求场景。本文将从多个维度深入探讨两者的区别&#xff0c;为…...

8.进程概念(四)

一、环境变量 1.基本概念 环境变量(environment variables)⼀般是指在操作系统中用来指定操作系统运行环境的⼀些参数。 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但是照样可以链接成…...

Windows服务器提权实战:常见方法、场景与防御指南

在渗透测试中&#xff0c;​​权限提升&#xff08;提权&#xff09;​​是从低权限账户&#xff08;如IIS、Apache运行账户&#xff09;获取系统管理员&#xff08;如SYSTEM&#xff09;权限的关键步骤。本文将从实战角度解析Windows服务器提权的常见技术&#xff0c;并结合真…...

OpenGL-ES 学习(14) ----顶点指定和基本图元的绘制

目录 本节概述顶点的指定常量顶点属性和顶点数组顶点数组顶点属性的定义Shader 中声明顶点属性变量顶点属性的绑定 基本图元绘制基本图元三角形直线绘制图元的API 本节概述 绘制图形的第一步就是指定顶点坐标&#xff0c;可以每个顶点指定&#xff0c;也可以是用于所有顶点的常…...

spring-cloud-alibaba最新版本聚合项目创建

1. 创建聚合项目 修改 pom.xml spring-boot 当前最新版本是 3.4.5 但是 spring-cloud-alibaba 的最新版本是 2023.0.3.2&#xff0c;只适配到 spring-boot 3.2.4 还没有适配到 spring-boot 的 3.4.5 版本。 pom.xml 文件内容如下(可以直接复制)&#xff1a; <?xml vers…...

网络分析/

三、网络分析&#xff08;Network Analysis&#xff09; 网络分析用于解决路径规划、资源分配等问题&#xff0c;广泛应用于交通规划、物流配送、紧急救援等领域。ArcPy 提供了强大的网络分析工具&#xff0c;如 MakeNetworkDataset、Solve 等。 &#xff08;一&#xff09;使用…...

Flutter PIP 插件 ---- 新增PipActivity,Android 11以下支持自动进入PIP Mode

接上文 Flutter PIP 插件 ---- Android 项目地址 PIP&#xff0c; pub.dev也已经同步发布 pip 0.0.3&#xff0c;你的加星和点赞&#xff0c;将是我继续改进最大的动力 开发文档 Add videos using picture-in-picture (PiP)介绍PIP功能从 Android 8.0 (API level 26) 引入&…...

权限提升—Linux提权内核溢出漏洞辅助项目

前言 今天开启Linux提权的篇章&#xff0c;主要是讲一下Linux的内核漏洞提权&#xff0c;利用方式和Windows系统漏洞提权差不多&#xff0c;也是网上的项目扫一下&#xff0c;然后根据漏洞编号去找exp即可。 信息收集 首先要说一下Linux用户的权限划分。 系统用户&#xff…...

超稳定性理论

为了更好的理解后面如何利用超稳定性理论来设计MRACS&#xff0c;本篇先对超稳定性理论做一个介绍。 1、理论介绍 在超稳定性理论中&#xff0c;核心的系统结构如下&#xff1a; 其包含一个线性的前向回路 G ( s ) G(s) G(s)和一个非线性的反馈回路 φ ( v ) \varphi (v) φ…...

治理和管理的区别

治理&#xff08;Governance&#xff09;与管理&#xff08;Management&#xff09;是两个在组织和社会运行中经常被提及的概念&#xff0c;它们虽然在某些方面有相似之处&#xff0c;但在内涵、范围、主体和目标等方面存在显著的区别。以下是它们的主要区别&#xff1a; 一、…...

业务流程BPM能力框架体系及华为中兴流程变革案例P83(83页PPT)(文末有下载方式)

资料解读&#xff1a;《业务流程 BPM 能力框架体系及华为中兴流程变革案例》 详细资料请看本解读文章的最后内容。 该文档围绕业务流程管理&#xff08;BPM&#xff09;能力框架体系展开&#xff0c;先阐述其定义、驱动因素与能力框架&#xff0c;再详细介绍战略规划、流程治理…...

如何通过日志在本地调试LangChain编写的程序?

LangSmith可以记录LangChain程序对LLM的调用&#xff0c;但它需要登陆LangSmith网站才能看到。有什么办法在本地就能看到详细的信息&#xff0c;以方便调试LangChain编写的程序吗&#xff1f; 使用LangChain提供的set_debug(True) 在Python代码中只需要导入set_debug这个方法…...

UE实用地编插件Physical Layout Tool

免费插件 https://www.fab.com/zh-cn/listings/a7fb6fcf-596f-48e9-83cc-f584aea316b1 可以通过物理模拟批量放置物体 不用再一个个摆放了 装饰环境从未如此简单&#xff0c;您不必再考虑对齐物体。 物理地放置物体&#xff0c;移动它们&#xff0c;在移动或在地图上放置物体…...

传感器的精度,灵敏度等概念介绍

文章目录 &#x1f3d4;️ 海拔高度传感器的四个核心指标1. &#x1f3af; **精度&#xff08;Accuracy&#xff09;——“测得的高度准不准”**2. ⚡ **灵敏度&#xff08;Sensitivity&#xff09;——“高度微小变化有没有反应”**3. &#x1f50d; **分辨率&#xff08;Reso…...

前端八股 CSS 1

盒子模型 进行布局时将所有元素表示为一个个盒子box padding margin border content content&#xff1a;盒子内容 待显示的文本和图像 padding&#xff1a;内边距&#xff0c;内容和border之间的空间&#xff0c;不能为负数&#xff0c;受bkc影响 border:边框&#xff0c…...