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

STM32-- 看门狗--介绍、使用场景、失效场景

STM32 中的看门狗(Watchdog Timer,简称 WDG)有两种主要类型:独立看门狗(IWDG)窗口看门狗(WWDG)。它们的喂狗机制各有特点,主要区别如下:


1. 独立看门狗(IWDG)

喂狗模式:常规定时喂狗
  • 喂狗方式: 调用 IWDG_ReloadCounter() 函数,在任何时刻都可以重装载计数器,从而避免超时复位。

  • 超时机制: 如果计数器倒计时到 0 且没有及时喂狗,系统会复位。

  • 特点

    • 喂狗没有时间窗口限制,只要在超时时间之前喂狗即可。
    • 内部低速时钟(LSI,约 32kHz) 提供时钟,不依赖主系统时钟。
    • 无法被软件或调试工具停止,一旦启用只能通过硬件复位重启。
优点
  • 配置简单,适用于通用场景。
  • 独立于主系统时钟(HCLK),可靠性高。
缺点
  • 无法防止程序在特定时间段反复喂狗(如错误逻辑进入喂狗环)。

2. 窗口看门狗(WWDG)

喂狗模式:窗口限制喂狗
  • 喂狗方式: 调用 WWDG_SetCounter() 函数时,喂狗必须在指定的时间窗口内完成。

    • 窗口时间是由 WWDG 的计数器和窗口寄存器共同决定的。
    • 如果喂狗太早(计数器值大于窗口值)或太晚(计数器倒计时到 0),系统会复位。
  • 超时机制

    • 必须在窗口时间内重装载计数器。
    • 超过窗口的时间范围(太早或太晚)都会导致复位。
  • 特点

    • 使用 APB1 时钟(PCLK1) 提供时钟源,依赖主系统时钟。
    • 可以通过调试工具暂停计数。
    • 可设置窗口值,要求喂狗在特定时间范围内完成,防止程序因逻辑错误频繁喂狗。
优点
  • 增强程序可靠性,防止错误逻辑无限循环喂狗。
  • 支持更精确的复位条件控制。
缺点
  • 配置稍复杂,需要合理选择窗口值和计数器初始值。
  • 依赖主系统时钟,可靠性略低于 IWDG。

两种模式的对比

特性独立看门狗(IWDG)窗口看门狗(WWDG)
时钟来源内部低速时钟(LSI,32kHz)APB1 时钟(PCLK1)
喂狗机制任何时间都可以喂狗必须在时间窗口内喂狗
配置复杂度简单较复杂
适用场景通用场景,保证基本的系统稳定性高可靠场景,防止逻辑错误频繁喂狗
可靠性更高略低,依赖主系统时钟
调试控制不可暂停支持暂停
可控性不限制喂狗时间支持细粒度时间窗口控制

选择建议

  1. 使用场景简单,侧重可靠性:选择 独立看门狗(IWDG)

    • 如在嵌入式系统中需要一个独立于系统时钟的简单复位保护机制。
  2. 高可靠性要求,需防止逻辑错误:选择 窗口看门狗(WWDG)

    • 如工业控制场景,程序卡死可能导致危险,需要精确控制喂狗行为。

代码示例

1. 独立看门狗喂狗
#include "stm32f10x_iwdg.h"void IWDG_Init(void) {RCC_LSICmd(ENABLE); // 启用 LSI 时钟while (!RCC_GetFlagStatus(RCC_FLAG_LSIRDY)); // 等待 LSI 就绪IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); // 使能配置IWDG_SetPrescaler(IWDG_Prescaler_64);        // 设置预分频器为 64IWDG_SetReload(625);                         // 设置重装载值(1 秒超时)IWDG_ReloadCounter();                        // 加载值到计数器IWDG_Enable();                               // 启动 IWDG
}void Feed_Dog(void) {IWDG_ReloadCounter(); // 喂狗
}/*上下两种初始化和使用,没有关系*********************///在main函数中的使用初始化看门狗,不同库函数,初始化函数不一样
// 启用 LSI 时钟,看门狗要用RCC_LSICmd(ENABLE);while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET); // 等待 LSI 就绪// 配置 IWDG,超时时间为 1 秒IWDG_Config(IWDG_Prescaler_64, 625);printf("初始化初始化喂狗\n");// 定时喂狗,防止复位,放在while循环里面
IWDG_ReloadCounter();
printf("喂狗\n");
2. 窗口看门狗喂狗
#include "stm32f10x_wwdg.h"void WWDG_Init(void) {RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // 启用 WWDG 时钟WWDG_SetPrescaler(WWDG_Prescaler_8);       // 设置预分频器WWDG_SetWindowValue(80);                   // 设置窗口值(喂狗窗口)WWDG_Enable(100);                          // 启动 WWDG 并设置计数器值
}void Feed_Dog(void) {WWDG_SetCounter(100); // 喂狗(需在窗口时间内)
}还没有使用过,用的时候再说

通过对比,可以根据实际场景选择合适的看门狗类型并合理设置喂狗机制。

看门狗使用场景

在嵌入式系统中,看门狗的主要目的是检测系统异常并自动复位,保障系统的稳定运行。以下是常见需要喂狗的场景:


1. 系统可能出现死循环或卡死的场景

  • 现象
    • 系统因软件错误、逻辑陷阱或资源争用导致无限循环或停止响应。
  • 应用
    • 工业自动化控制(PLC 等)。
    • 智能家居设备(如网关、传感器)。
    • 通信设备(如路由器、交换机)。
  • 原因: 看门狗可以在系统卡死时触发复位,避免长时间停机。

2. 系统存在较高可靠性要求的场景

  • 现象
    • 嵌入式设备长时间无人值守,需要保持长期稳定运行。
  • 应用
    • 医疗设备(监护仪、输液泵)。
    • 交通设备(信号灯控制、车载 ECU)。
    • 军事和航空航天设备。
  • 原因: 使用看门狗复位系统,可提高容错能力和整体可靠性。

3. 外设数据采集或处理超时的场景

  • 现象
    • 数据采集模块长时间未能完成任务,可能导致整个系统响应缓慢或失效。
  • 应用
    • 数据采集终端(温度、压力传感器)。
    • 多任务实时系统(RTOS)。
  • 原因: 配合看门狗的定期复位机制,避免单个模块卡死影响整体系统。

4. 系统通信异常的场景

  • 现象
    • 外部设备或模块因通信中断而停止响应。
  • 应用
    • 网络设备(IoT 网关、通信模组)。
    • 智能设备(摄像头、机器人)。
  • 原因: 如果通信超时,看门狗可复位系统重新尝试连接。

5. 电磁干扰或外界环境影响较大的场景

  • 现象
    • 嵌入式设备可能受到环境干扰(电磁干扰、静电等),导致系统异常。
  • 应用
    • 工业环境(高压设备、变电站)。
    • 军用电子设备。
  • 原因: 看门狗可检测因环境干扰导致的系统失效并触发复位,恢复正常运行。

6. 软件升级或运行复杂任务的场景

  • 现象
    • 系统执行复杂的算法或升级任务时,可能发生资源争用或异常。
  • 应用
    • 在线升级固件的 IoT 设备。
    • 人工智能推理设备(如车载计算机)。
  • 原因: 看门狗可以监控长时间任务运行,避免任务因不可预测的问题导致系统停滞。

7. 用户无法频繁维护设备的场景

  • 现象
    • 设备分布在偏远或不便维护的位置。
  • 应用
    • 太阳能监控设备。
    • 海上浮标、地震监测设备。
    • 无人机、卫星等。
  • 原因: 看门狗自动复位功能降低了人工干预的频率,提升系统可用性。

8. 高安全性场景

  • 现象
    • 系统的异常可能带来严重后果(如数据丢失或生命危险)。
  • 应用
    • 银行 ATM 系统。
    • 医疗设备。
    • 车辆控制系统(自动驾驶)。
  • 原因: 看门狗能在意外时快速恢复系统,避免造成重大损失。

总结:典型需要喂狗的场景

场景主要原因示例应用
死循环或逻辑卡死防止程序因意外逻辑错误停滞工业设备、智能终端
高可靠性要求长期无人值守,需自我修复医疗设备、交通控制
数据采集或超时控制模块运行超时可能影响整个系统RTOS 系统、数据采集设备
通信异常网络或模块中断可能影响设备响应路由器、物联网设备
电磁干扰环境环境干扰可能引起系统故障工业控制、军事设备
复杂任务或软件升级防止任务中断导致系统不可恢复人工智能设备、在线升级
无法维护的设备减少人工维护频率,提高设备可靠性远程监控设备、无人机
高安全性需求确保关键设备在故障时快速恢复ATM 机、自动驾驶系统

在这些场景中,合理配置看门狗的超时时间和喂狗逻辑,可以有效提升系统的健壮性和可靠性。

看门狗失效的场景

理论上,看门狗是一种硬件模块,独立于主处理器运行,设计上可以在系统卡死时强制复位。但在某些特殊情况下,即使有看门狗,也可能无法复位。这种情况通常与硬件设计或系统架构有关。以下是可能的原因和解决方法:


1. 系统进入低功耗模式

  • 原因
    • 有些嵌入式设备在进入深度睡眠模式时,会关闭看门狗定时器。
    • 如果设备卡死在低功耗模式中,看门狗无法触发复位。
  • 解决方法
    • 确保看门狗模块在低功耗模式下仍保持工作(某些芯片支持此功能)。
    • 使用独立看门狗(如外部硬件看门狗),保证看门狗与主处理器的运行无关。

2. 系统总线或时钟停止工作

  • 原因
    • 系统因为严重错误(如总线死锁或时钟停止),导致看门狗依赖的时钟源失效。
  • 解决方法
    • 使用内部低速时钟(如独立的低速振荡器 LSI)驱动看门狗。
    • 确保时钟源具有高可靠性,并在设计中添加冗余机制。

3. 电源故障

  • 原因
    • 硬件因供电不足或瞬间断电,导致看门狗和主处理器均停止工作。
  • 解决方法
    • 添加稳压电路和电源监控芯片,确保系统供电稳定。
    • 使用外部看门狗模块,其独立供电可提升可靠性。

4. 看门狗配置或逻辑错误

  • 原因
    • 看门狗初始化错误或喂狗逻辑未正确实现,导致看门狗无法正常运行。
    • 误配置过长的超时时间,程序卡死后仍在喂狗。
  • 解决方法
    • 充分测试看门狗初始化和喂狗逻辑。
    • 使用合理的超时时间,避免因喂狗间隔过长或喂狗频率过高而失效。

5. 硬件设计缺陷

  • 原因
    • 某些硬件设计中,看门狗复位信号未正确连接或复位信号不起作用。
    • 外部硬件看门狗模块未正确实现逻辑复位。
  • 解决方法
    • 确保看门狗复位信号正确连接到处理器的复位引脚。
    • 测试硬件设计的复位功能是否正常。

6. 看门狗自身故障

  • 原因
    • 看门狗模块内部硬件故障,导致其无法工作。
    • 例如独立看门狗的振荡器损坏或芯片老化。
  • 解决方法
    • 定期检测和维护设备,确保硬件正常。
    • 使用多个看门狗模块(例如内部和外部看门狗结合)。

7. 看门狗复位后依旧死循环

  • 原因
    • 程序设计问题导致复位后重复进入死循环,触发看门狗再次复位。
  • 解决方法
    • 复位后执行硬件自检和初始化,避免问题反复发生。
    • 在看门狗超时后,将复位状态记录在非易失性存储器中,方便分析问题根源。

8. 极端硬件或环境问题

  • 原因
    • 硬件遭受极端环境干扰(如高强度电磁辐射、雷击)。
    • 存在硬件级别的设计缺陷或材料老化。
  • 解决方法
    • 提升设备抗干扰能力,例如添加屏蔽罩、滤波器。
    • 定期更新设备,避免使用超出寿命的硬件。

如何降低看门狗失效的可能性

  1. 设计冗余系统
    • 使用多个独立的看门狗模块,主从备份。
  2. 合理选择看门狗类型
    • 使用独立看门狗(如外部芯片)而非依赖于主处理器的内部看门狗。
  3. 测试看门狗功能
    • 定期在程序中模拟卡死场景,验证看门狗是否能正常复位。
  4. 使用外部复位电路
    • 配合电源管理芯片(如带复位功能的电源监控芯片),提供额外的复位保障。
  5. 做好复位后程序设计
    • 确保复位后系统能进入正常工作状态,避免重复复位。

总结

虽然看门狗是一种非常可靠的保护机制,但它并不是万能的。如果系统设计或硬件环境存在问题,看门狗也可能无法复位。通过合理设计、冗余机制和充分测试,可以最大程度地降低看门狗失效的风险。

相关文章:

STM32-- 看门狗--介绍、使用场景、失效场景

STM32 中的看门狗(Watchdog Timer,简称 WDG)有两种主要类型:独立看门狗(IWDG) 和 窗口看门狗(WWDG)。它们的喂狗机制各有特点,主要区别如下: 1. 独立看门狗&a…...

【赵渝强老师】PostgreSQL的数据库

PostgreSQL的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都…...

linux安全管理-会话安全

文章目录 1 设置命令行界面超时退出2 配置终端登录失败策略3 配置 SSH 登录失败策略 1 设置命令行界面超时退出 1、检查内容 检查操作系统是否设置命令行界面超时退出。 2、配置要求 操作系统设置命令行界面超时退出。 3、配置方法 配置命令行界面超时时间,编辑/et…...

Ubuntu监视显卡占用情况

在终端中运行 watch -n 0.5 nvidia-smi【以下内容由大模型生成】 watch -n 0.5 nvidia-smi 是一个组合命令,用于在 Linux 终端中定期执行 nvidia-smi 命令并显示其输出。让我们分解一下这个命令的各个部分: watch: watch 是一个用于定期执行其他命令并显…...

学成在线day06

上传视屏 断点续传 通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成&…...

Mac安装及合规无限使用Beyond Compare

文章目录 Beyond CompareBeyond Compare简介Beyond Compare安装Beyond Compare到期后继续免费使用 Beyond Compare Beyond Compare简介 Beyond Compare 是一款由 Scooter Software 开发的文件和文件夹比较工具。它主要用于对比两个文件或文件夹之间的差异,并支持文…...

【青牛科技】2K02 电动工具专用调速电路芯片描述

概述: 2K02 是电动工具专用调速电路。内置稳压电路,温度系数好,可以调节输出频率以及占空比的振荡输出,广泛的应用于小型电钻,割草机等工具。 主要特点: ● 电源电压范围宽 ● 占空比可调 ● 温度系数好 …...

基于SpringBoot实现的民宿管理系统(代码+论文)

🎉博主介绍:Java领域优质创作者,阿里云博客专家,计算机毕设实战导师。专注Java项目实战、毕设定制/协助 📢主要服务内容:选题定题、开题报告、任务书、程序开发、项目定制、论文辅导 💖精彩专栏…...

安装QT6.8(MSVC MinGW)+QT webengine+QT5.15.2

本篇主要针对只使用过QT5的qmake,没有用过MSVC,VS的老同学。 建议一部分一部分安装,全部勾选安装遇到问题会中断,前功尽弃。 我自己需要的是QT5,编出的软件用在公司设备上。 QT6:建议也安装学习&#xf…...

MinIO常见操作及Python实现对象的增删改查

MinIO常见操作 MinIO是一个高性能的开源对象存储服务,它兼容Amazon S3云存储服务API。在MinIO中,常见的操作包括: 存储桶操作: 创建、列出、获取信息、删除存储桶。 对象操作: 上传、下载、列出、删除对象。 权限管理&…...

网络编程中的字节序函数htonl()、htons()、ntohl()和ntohs()

目录 1,网络字节序和主机字节序 2. 函数的具体作用 2.1,htonl(Host to Network Long) 2.2,htons(Host to Network Short) 2.3,ntohl(Network to Host Long) 2.4,ntohs(Network to Host Sho…...

【dvwa靶场:File Upload系列】File Upload低-中-高级别,通关啦

目录 一、low级别,直接上传木马文件 1.1、准备一个木马文件 1.2、直接上传木马文件 1.3、访问木马链接 1.4、连接蚁剑 二、medium级别:抓包文件缀名 2.1、准备一个木马文件,修改后缀名为图片的后缀名 2.2、上传文件,打开burpSuite&…...

RHCE NFS

RHCE NFS 1.11. 2 NFS 主机名格式1.3 NFS 服务器配置1.3.1 /etc/exports 配置文件1.3.1.1 导出条目1.3.1.2 默认选项1.3.1.3 默认和覆盖选项 1.4 启动 NFS 服务器1.5 练习1.5.1 配置 NFS 服务器和客户端挂载1.5.2 配置autofs自动挂载(需要时才挂载) 1.6 …...

【数据结构】ArrayList与顺序表

ArrayList与顺序表 1.线性表2.顺序表2.1 接口的实现 3. ArrayList简介4. ArrayList使用4.2 ArrayList常见操作4.3 ArrayList的遍历4.4 ArrayList的扩容机制 5. ArrayList的具体使用5.1 杨辉三角5.2 简单的洗牌算法 6. ArrayList的问题及思考 【本节目标】 线性表顺序表ArrayLis…...

互联网基础

TCP/IP协议(协议组) 分层名称TCP/IP协议应用层HTTP,FTP,mDNS,WebSocket,OSC...传输层TCP,UDP网络层IP链路层(网络接口层)Ethernet,Wi-Fi... 链路层(网络接口层) 链路层的主要作用…...

ffmpeg.js视频播放(转换)

chrome 临时设置SharedArrayBuffer "C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-featuresSharedArrayBuffer 引用的js及相关文件 ffmpeg.min.js ffmpeg.min.js.map ffmpeg-core.js ffmpeg-core.wasm ffmpeg-core.worker.js 以上几个现…...

后端 Java发送邮件 JavaMail 模版 20241128测试可用

配置授权码 依赖 <dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.5.5</version> </dependency> <dependency><groupId>com.sun.mail</groupId><artifa…...

电脑中的vcruntime140_1.dll文件有问题要怎么解决?一键修复vcruntime140_1.dll

遇到“vcruntime140_1.dll无法继续执行代码”的错误通常表明电脑中的vcruntime140_1.dll文件有问题。这个文件属于Visual C Redistributable&#xff0c;对很多程序的运行至关重要。本文将提供几个步骤&#xff0c;帮助你迅速修复这一错误&#xff0c;使电脑恢复正常工作状态。…...

探索 Vue 3.0中Treeshaking特性?

Vue 3.0 中的 Tree Shaking 特性 Tree Shaking 是一种优化技术,旨在通过静态分析代码,去除未使用的模块或函数,从而减小最终的打包文件大小。在 Vue 3.0 中,由于其模块化设计和代码按需引入的特性,Vue 的 Tree Shaking 特性得到了增强,能够有效地去除那些在生产环境中未…...

Paddle Inference部署推理(十)

十&#xff1a;Paddle Inference推理 &#xff08;python&#xff09;API详解 9. 启用内存优化 API定义如下&#xff1a; # 开启内存 / 显存复用&#xff0c;具体降低内存效果取决于模型结构 # 参数&#xff1a;None # 返回&#xff1a;None paddle.inference.Config.enable…...

万能门店小程序管理系统 doPageGetFormList SQL注入漏洞复现

0x01 产品简介 万能门店小程序管理系统是一款功能强大的工具,旨在为各行业商家提供线上线下融合的全方位解决方案。是一个集成了会员管理和会员营销两大核心功能的综合性平台。它支持多行业使用,通过后台一键切换版本,满足不同行业商家的个性化需求。该系统采用轻量后台,搭…...

全面+彻底解决VMware安装后没有VMnet1和VMnet8的问题

目录 1、摘要 &#xff08;1&#xff09;问题 &#xff08;2&#xff09;所用工具 ① Everything软件 ② CCleaner软件 2、问题的检查与确认 3、解决过程 &#xff08;1&#xff09;卸载已经安装的VMware &#xff08;2&#xff09;设置services.mcs&#xff1a;服务自…...

什么是堆?

堆&#xff08;Heap&#xff09;&#xff1a;堆可以看做是一颗用数组实现的二叉树&#xff0c;所以它没有使用父指针或者子指针。堆根据“堆属性”来排序&#xff0c;“堆属性”决定了树中节点的位置。 堆的特性 1.堆是完全二叉树&#xff0c;除了树的最后一层节点不需要是满的…...

微距动物和植物摄影后期森系风格Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色教程 微距动物和植物摄影后期采用森系风格的 Lightroom 调色&#xff0c;将微距下的动植物世界打造成充满自然气息和梦幻感的画面。这种调色风格旨在突出动植物的细腻之美&#xff0c;同时营造出宁静、清新的森林氛围。 预设信息 调色风格&#xff1a;森系风格预设适合类…...

Qt6.8安卓Android开发环境配置

时隔多年&#xff0c;重拾QtCreator下Android开发。发现Qt6下安卓开发环境配置变简单不少&#xff01;只需三步即可在QtCreator下进行Android开发&#xff1a; 一、使用Qt Mantenance Tool进行Android模块的安装&#xff1a; 如果感觉安装网速较慢&#xff0c;可以查看本人另外…...

RK3568部署yolo8记录

本教程记录自己一下在RK3568上部署yolo8的步骤 板端驱动 在板端&#xff0c;首先查看rknpu驱动是否安装、存在。若键入下面的命令有返回则&#xff0c;证明驱动已安装。 dmesg | grep -i rknpu 瑞芯微官方说&#xff0c;驱动版本最好大于0.9.2。但是我看有的博主说&#xff…...

数据可视化复习2-绘制折线图+条形图(叠加条形图,并列条形图,水平条形图)+ 饼状图 + 直方图

目录 目录 一、绘制折线图 1.使用pyplot 2.使用numpy ​编辑 3.使用DataFrame ​编辑 二、绘制条形图&#xff08;柱状图&#xff09; 1.简单条形图 2.绘制叠加条形图 3.绘制并列条形图 4.水平条形图 ​编辑 三、绘制饼状图 四、绘制散点图和直方图 1.散点图 2…...

JavaScript原生深拷贝方法 structuredClone使用

structuredClone 简介 structuredClone 是现代浏览器提供的原生 JavaScript 方法&#xff0c;用于深拷贝对象。它可以处理各种复杂数据结构&#xff0c;包括嵌套对象、数组、Date、Map、Set 等&#xff0c;且支持循环引用。 语法 const clone structuredClone(value);value:…...

SpringBoot无法使用jkd8问题

1. 解决SpringBoot无法使用jdk8问题 创建一个高 jkd 版本&#xff0c;如 jkd21 在创建项目后&#xff0c;将 pom.xml中的 jdk 版本改为8&#xff0c;找到下图所在位置修改即可。 此外将 SpringBoot 的版本修改为 2 开头的 如2.7.4 &#xff0c;然后 刷新 Maven 项目即可。 在 …...

使用 Jina Embeddings v2 在 Elasticsearch 中进行后期分块

作者&#xff1a;来自 Elastic Gustavo Llermaly 在 Elasticsearch 中使用 Jina Embeddings v2 模型并探索长上下文嵌入模型的优缺点。 在本文中&#xff0c;我们将配置和使用 jina-embeddings-v2&#xff0c;这是第一个开源 8K 上下文长度嵌入模型&#xff0c;首先使用 semant…...

做网站可行性分析/爱战网关键词挖掘

正向代理和反向代理的概念 代理服务&#xff08;Proxy&#xff09;&#xff0c;通常也称为正向代理服务。 如果把局域网外Internet想象成一个巨大的资源库&#xff0c;那么资源就分布到了Internet的各个点上&#xff0c;局域网内的客户端要访问这个库里的资源就必须统一通过代理…...

怎么黑掉织梦做的网站/只要做好关键词优化

strlen是一个C语言标准库函数&#xff0c;用于计算一个字符串的长度&#xff0c;即字符串中字符的个数(不包括字符串末尾的空字符\0)。在使用时需要包含头文件<string.h>。使用方式是&#xff1a;strlen(str)&#xff0c;其中str为要计算长度的字符串。函数返回值是一个整…...

linux 网站开发/免费奖励自己的网站

重庆属于东七区&#xff0c;上海属于东八区。差一个时区。 我国地跨五个时区&#xff1a;东五区、东六区、东七区、东八区、东九区。东五区主要位于新疆西南部、西藏西北部地区。东六区主要位于新疆大部分地区、西藏大部分地区、甘肃西部、青海西部。东七区主要位于内蒙古西部、…...

电商平台网站设计公司/近日网站收录查询

转自&#xff1a;https://blog.csdn.net/xmu_jupiter/article/details/50889023 高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式&#xff0c;而且符号表述不太清楚&#xff0c;或者文笔非常生硬。本文…...

网站做seo推广/成都多享网站建设公司

静定结构内力的计算是建筑力学的重要组成部分,需要同学们熟练掌握,只有掌握了内力计算的基本方法,才能准确的绘制梁的剪力、弯矩图。本文就静定梁的内力计算及内力图的绘制作一简要阐述。1静定梁内力(剪力Q和弯矩M)计算的基本方法1.1截面法将结构沿拟求内力的截面截开,取截面任…...

做网站怎么添加背景图片/疫情最严重的三个省

通信原理: 70 分 基本概念&#xff1a;通信系统的基本构成单元&#xff1b;模拟与数字系统、模拟信号与数字信号基本概念&#xff1b;通信系统性 能与资源、复杂度等之间的折中。 随机过程&#xff1a;随机信号基本概念&#xff1b;随机信号统计特性&#xff1b;广义平稳过程概…...