stm32f103c8t6hal库使用看门狗

STM32F103C8T6,窗口看门狗(WWDG)与独立看门狗(IWDG)详解 在嵌入式系统开发中,​​看门狗定时器​​是确保系统可靠性的关键组件。STM32F103C8T6提供了两种不同类型的看门狗:​​窗口看门狗(WWDG)​​和​​独立看门狗(IWDG)​​。本文将深入探讨它们的区别、工作原理、应用场景,并提供基于HAL库的实用代码示例。 阅读详情

STM32F103C8T6是一款性能强大的微控制器,它具有丰富的外设和功能,其中之一就是看门狗(Watchdog)。看门狗是一种重要的硬件设备,它可以在系统出现异常时自动重启系统,以保证系统的稳定运行。我们将详细介绍如何在STM32F103C8T6上使用HAL库来配置和使用看门狗。
在这里插入图片描述

看门狗简介

看门狗是一种定时器,它会在预设的时间内计数。如果在这个时间内没有被主程序“喂狗”(即重置计数器),那么看门狗就会触发系统复位。这样,如果主程序由于某种原因(如死循环)无法正常运行,看门狗就会自动重启系统,防止系统长时间处于异常状态。

HAL库配置看门狗

在STM32F103C8T6上,我们可以使用HAL库来配置和使用看门狗。首先,我们需要在CubeMX中启用IWDG(Independent Watchdog)。

IWDG_HandleTypeDef hiwdg;

/* IWDG init function */
void MX_IWDG_Init(void)
{
  hiwdg.Instance = IWDG;
  hiwdg.Init.Prescaler = IWDG_PRESCALER_4;
  hiwdg.Init.Reload = 4095;
  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
  {
    Error_Handler();
  }
}

在上述代码中,我们首先定义了一个IWDG_HandleTypeDef类型的变量hiwdg,然后在MX_IWDG_Init函数中初始化这个变量。Prescaler参数用于设置预分频器的值,Reload参数用于设置看门狗的重载值。

喂狗

在主程序中,我们需要定期“喂狗”,以防止看门狗触发系统复位。喂狗的操作非常简单,只需要调用HAL_IWDG_Refresh函数即可。

/* Refresh IWDG: reload counter */
if (HAL_IWDG_Refresh(&hiwdg) != HAL_OK)
{
  Error_Handler();
}

在STM32F103C8T6单片机上,看门狗的时钟源是由LSI提供的,频率约为40KHz。如果我们想要在10秒内喂狗,我们需要计算预分频器和重载值。

首先,我们需要确定看门狗计数器的频率。这可以通过预分频器来实现。预分频器的值可以是4、8、16、32、64、128、256。假设我们选择最大的预分频值256,那么看门狗计数器的频率就是40KHz/256,约等于156Hz。

然后,我们需要计算重载值。看门狗的重载值是一个12位的值,范围是0-4095。如果我们想要10秒内喂狗,那么重载值应该是10秒乘以看门狗计数器的频率,即10*156,约等于1560。

所以,如果单片机主频是72MHz,我们想要10秒内喂狗,那么我们可以将预分频器设置为256,重载值设置为1560。

以下是配置看门狗的代码示例:

IWDG_HandleTypeDef hiwdg;

/* IWDG init function */
void MX_IWDG_Init(void)
{
  hiwdg.Instance = IWDG;
  hiwdg.Init.Prescaler = IWDG_PRESCALER_256;
  hiwdg.Init.Reload = 1560;
  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
  {
    Error_Handler();
  }
}

独立看门狗和窗口看门狗的区别

独立看门狗(Independent Watchdog)和窗口看门狗(Window Watchdog)都是用于监控和恢复系统错误的重要工具,但它们在工作方式和使用场景上有一些区别:

  1. 中断:独立看门狗没有中断,而窗口看门狗有中断。
  2. 控制方式:独立看门狗可以通过硬件或软件控制,而窗口看门狗只能通过软件控制。
  3. 喂狗时间:独立看门狗只有下限,即在一定时间内必须喂狗;而窗口看门狗有下限和上限,即只能在一个特定的时间窗口内喂狗。
  4. 计数器位数:独立看门狗是12位递减的,而窗口看门狗是7位递减的。

这些区别使得独立看门狗和窗口看门狗在实际应用中有各自的优势。独立看门狗适用于需要长时间监控的场景,而窗口看门狗则更适用于需要精确控制喂狗时间的场景。在选择使用哪种看门狗时,需要根据具体的系统需求和条件来决定。

STM32F103C8T6无刷电机驱动全攻略:从HAL库配置到PWM调参避坑指南 本文详细介绍了如何使用STM32F103C8T6的HAL库驱动无刷电机,涵盖从CubeMX时钟配置、PWM信号生成到电机校准与安全控制的完整流程。重点解析了50Hz PWM信号的参数计算、避坑指南及高级调试技巧,为四轴飞行器、机器人等项目的电机控制提供实战解决方案。 阅读详情

相关推荐

STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯

STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯

qq_38191568的博客 3万+

[STM32F103C8T6]看门狗

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造 成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会 造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测 的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们 经常说的喂狗。2.在窗口期内重装载计数器的值,防止复位,也就是所谓的喂狗。4·独立看门狗的时钟由独立的RC。

weixin_63303786的博客 2071

STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁

STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁

qq_38191568的博客 4872

单片机STM32看门狗详解(嵌入式学习)

单片机STM32的看门狗(Watchdog)是一种硬件定时器,用于监控系统的运行状态并在出现故障或死锁时采取措施以恢复正常操作。看门狗的主要功能是定期检查系统是否正常运行,并在系统出现问题时触发复位操作。STM32系列单片机通常配备了内置的看门狗定时器(通常称为独立看门狗,IWDG)和窗口看门狗定时器(WWDG),以提供更可靠的系统保护。独立看门狗(IWDG)是STM32中常用的看门狗,它是一个独立的硬件模块,可以在系统内部独立运行。通过配置IWDG定时器的计数器和预分频器,可以设置看门狗的定时时间。

1万+

【嵌入式】基于HAL库的STM32F103C8T6移植uCOS

uCOS(Micro C/OS)是一款经典的实时操作系统(RTOS),由美国嵌入式系统专家Jean J. Labrosse开发和维护。它是一款基于优先级的可裁剪、高效、可移植的实时操作系统,适用于各种嵌入式系统的开发。2.1.1主要特点可裁剪性:uCOS可以根据实际需求进行裁剪,只包含所需的功能,避免资源浪费。高效性:uCOS具有快速的任务切换和响应时间,能够满足实时性要求。可移植性:uCOS支持多种硬件平台和编译器,使得应用可以方便地移植到不同的嵌入式系统上。

2301_79624689的博客 1135

基于HAL库STM32F103C8T6移植uCOS

一、使用STM32CubeMX建立STM32F103C8T6HAL库 打开stm32cubemx首先进行配置RCC 再配置SYS,配置如下图 设置PC13为GPIO_Output用于点亮LED灯 然后再进行串口USART1的设置 完成之后再设置工程 然后点击生成代码 之后再在main函数中添加如下代码 while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HA...

qq_57841179的博客 2981

学习HAL库STM32F103C8T6(独立看门狗和窗口看门狗)

摘要:独立看门狗(IWDG)和窗口看门狗(WWDG)是两种不同的硬件看门狗。IWDG使用12位递减计数器,通过LSI时钟工作,主要检测硬件异常,超时未喂狗则系统复位。WWDG使用6位计数器,检测软件运行时效,需在特定窗口期内喂狗,否则复位。IWDG适用于电磁干扰等硬件故障场景,WWDG则用于需要精准时序检测的场合。两者在时钟源、计数位数、喂狗机制和应用场景上存在明显差异。实验表明,IWDG喂狗周期为1秒,而WWDG窗口期约29ms,超出窗口喂狗将触发复位。

2403_87767644的博客 644

STM32F103C8T6 的看门狗

STM32F103C8T6微控制器内置两个硬件看门狗外设:独立看门狗(IWDG)和窗口看门狗(WWDG)。IWDG基于内部低速时钟(LSI),提供系统级监控,确保程序异常时自动复位;WWDG基于APB1时钟,需在指定时间窗口内喂狗,用于检测程序时序异常。开发者可通过寄存器配置参数、启动外设及执行喂狗操作,其中WWDG还支持提前唤醒中断以便记录异常信息。看门狗功能可提升系统可靠性,适用于无人值守场景,但不能直接监控外设故障,需额外设计检测逻辑。本文还提供了两种看门狗的详细配置步骤和代码实现示例。

weixin_44520581的博客 44

实战解析:基于HAL库的STM32F103C8T6串口轮询通信与波特率误差分析

本文深入解析基于HAL库的STM32F103C8T6串口轮询通信实践,重点探讨波特率误差分析与优化策略。通过CubeMX配置技巧、轮询通信代码优化及误差补偿方法,提升串口通信稳定性,适用于工业控制、环境监测等场景。文章结合实战案例,详细讲解时钟树配置、逻辑分析仪实测及软件看门狗等关键技术。

weixin_30521161的博客 441

STM32F103C8T6 的看门狗(二)

STM32F103C8T6的独立看门狗(IWDG)和窗口看门狗(WWDG)可同时启用,二者硬件独立,互不干扰。IWDG基于内部LSI时钟(约40kHz),提供基础监控;WWDG基于系统主时钟,实现精准时序控制。双看门狗方案可提升系统可靠性,但会增加软件复杂度。适用场景包括:高可靠性需求设备推荐双看门狗,简单设备可只用IWDG,精密时序控制设备适合WWDG。文中提供了基于STM32标准库的双看门狗实现代码,包含初始化、喂狗和中断处理等关键函数,并强调了喂狗时机的设计要点。该方案已通过官方文档验证。

weixin_44520581的博客 33

STM32F103C8T6工程模板:从点灯到串口中断的完整避坑指南

嵌入式开发中,工程模板的质量往往决定项目起步的效率。STM32作为主流MCU平台,搭建一个规范的开发框架涉及启动文件、时钟树、外设驱动等多层配置,稍有不慎便会陷入编译报错、下载失败或串口乱码的困境。一个结构清晰、驱动分离的STM32工程模板,不仅包含HAL库下的GPIO控制、USART串口打印、外部中断与定时器中断的初始化方案,还覆盖独立看门狗、Keil与Makefile双构建链路等关键环节。通过预先配置时钟树到72MHz、固化调试接口和外围驱动,开发者可避开新手常见的十余个坑,快速进入业务逻辑开发。该模板

weixin_42715608的博客 151

APM32F103C8T6 vs STM32F103C8T6:国产替代实测对比

MCU选型是嵌入式系统设计中的关键决策,尤其在芯片供应波动和成本压力下,寻找可靠且兼容的替代方案成为工程师关注的焦点。兼容性并非简单的引脚一致,而是涵盖硬件引脚定义、软件驱动、开发工具链及外设行为的全链路匹配。APM32F103C8T6作为国产Cortex-M3内核MCU,宣称与STM32F103C8T6实现Pin-to-Pin兼容,其技术价值在于降低供应链风险、优化成本并缩短研发周期,广泛应用于工业控制、物联网终端及电机驱动等场景。本文通过搭建最小系统板,围绕GPIO、UART、定时器、PWM、ADC、I

weixin_28716769的博客 187

STM32F103C8T6 HAL库工程模板:从零搭建可复用嵌入式骨架

在嵌入式开发中,STM32微控制器和HAL库是常见的技术组合,而工程模板能显著提升开发效率。其原理是通过预配置时钟、外设和中断,减少重复劳动。技术价值在于让开发者聚焦业务逻辑,避免底层配置错误。应用场景包括产品原型、课程设计等。本文分享了一个基于STM32F103C8T6和HAL库的工程模板,涵盖CubeMX配置、代码隔离、串口重定向、环形缓冲区、中断优先级和任务调度等核心模块,帮助开发者快速构建稳定工程。

weixin_29194817的博客 167

基于STM32F103C8T6的毕业设计:从选题避坑到系统级实现指南

毕业设计选型,核心是“够用、好学、资源多”。优势:性能足够应对绝大多数本科毕设(主频72MHz),外设丰富(ADC、DAC、多个定时器、USART、SPI、I2C等),生态极其完善(标准库、HAL库、大量中文资料、社区活跃)。它的ARM架构和开发流程(Keil/STM32CubeIDE)是进入工业界的敲门砖。边界:不适合需要复杂图形界面(如LVGL)、大量网络通信(需外接模块)、超低功耗(相比M0+或M4的低功耗型号)或极高计算性能(如FFT)的场景。对比Arduino (AVR/ARM)

2600_94959800的博客 739

STM32F103C8T6 例程正点原子 :模板+串口实验+滴答定时器 +独立看门狗+窗口看门狗

STM32F103C8T6 例程正点原子 :模板+串口实验+滴答定时器 +独立看门狗+窗口看门狗

从‘眼花缭乱’到‘心中有数’:rs-fMRI统计分析全流程避坑指南(附DPABI操作截图)

本文详细解析了rs-fMRI统计分析的全流程,从质量控制到统计模型选择,再到多重比较校正和结果解读。特别针对DPABI软件操作中的常见陷阱提供实用指南,帮助研究者避免FDR和GRF校正等关键环节的错误,实现从数据混乱到清晰分析的转变。

weixin_33686714的博客 398

STM32F103C8T6的隐藏技能:解锁Arduino IDE之外的硬件潜力

本文深入探讨STM32F103C8T6微控制器超越Arduino IDE的硬件潜力,揭示其寄存器级编程、高级外设配置和低功耗管理等隐藏技能。通过直接硬件操作和定时器协同工作,开发者可解锁更高性能与精确控制,适用于物联网设备和精密测量等高级应用场景。

tgb34567890的博客 625

Revit实战:从零到一,手把手教你用族(Family)搭建一个完整的水闸BIM模型

本文详细介绍了如何使用Revit的族(Family)功能从零开始构建一个完整的水闸BIM模型。通过参数化族设计,实现闸门开度调整自动关联流量计算等智能化功能,提升水利工程BIM模型的工程价值和应用效率。文章涵盖族库规划、核心构件创建、高级技巧及BIM数据深度应用,为水利工程数字化提供实用指南。

weixin_28738165的博客 263

STM32F103C8T6 标准库(SPL)迁移到 HAL 库指南

这是一份详细的 STM32F103C8T6 标准库(SPL)向 HAL 库移植的指南,涵盖 GPIO、USART、I2C、SPI、ADC、TIM 等外设。STM32F103C8T6 的标准外设库(SPL)与 STM32Cube HAL 库在使用方式上存在较大差异。本文将详细介绍如何将基于 SPL 的工程迁移到 HAL 库,包括 HAL 工程创建、各外设迁移方法、中断处理适配、寄存器操作调整,以及测试与调试技巧。

h050210的博客 4274

高性能网站设计之缓存更新的套路

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。 我不知道为什么这么多人用的都是这

代码技巧 1万+

手把手教你用XC7A35T FPGA搭建低成本机器视觉系统(含开发板选型指南)

本文详细介绍了如何利用AMD(原Xilinx)Artix-7系列中的XC7A35T FPGA芯片,搭建一套低成本的机器视觉系统。内容涵盖从芯片选型深度剖析、开发板(如黑金AX7035B)对比指南,到使用Vivado创建工程、编写图像处理模块(如RGB转灰度),以及资源优化和与上位机(如OpenCV)协同工作的完整流程,旨在为开发者提供一套可实践的高性价比硬件加速视觉解决方案。

beta5的博客 353

HAL库STM32F103RCT6移植到STM32F103C8T6(2019后新版本)

HAL库STM32F103RCT6移植到STM32F103C8T6(2019后新版本) 本文章为注意事项 基于正点原子F1mini开发板的HAL标准例程的模板,F1cube库版本1.8.0(目前最新) 1,修改IC为STC32F103C8 ![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTU3NDYyNi8xNTkxNzk5NTM4NTkwLTFjNTdkNmNmL

小辛的窝窝 6449

论文阅读:ICLR 2026 Breaking and Fixing Defenses Against Control-Flow Hijacking in Multi-Agent Systems

该论文首先系统阐述了控制流劫持攻击的核心机理。此类攻击通过操纵多智能体系统的编排机制,诱导系统执行非安全操作,进而实现敏感信息窃取。攻击者将恶意指令伪装成环境错误信息,借助可信代理传递至系统编排器,利用"困惑副手"漏洞绕过传统安全防线。该论文指出,现有防御方案如LlamaFirewall所依赖的对齐检查机制存在根本性局限——安全目标与功能需求之间存在不可调和的内在冲突。该论文的核心贡献体现在攻防两个维度。

CSPhD-winston的博客 493
上一篇: ThreadX:怎么确定一个线程应该开多少内存
下一篇: C语言常用的宏定义
DennisReYoonjiho
博客等级 码龄7年 216粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值