STMCU小助手
发布时间:2022-5-6 09:26
|
1 概述 1.1 资源概述 开发板:ST官方NUCLEO-F103RB开发板 CUBEMX版本:1.3.0 MDK版本:5.23 主控芯片型号:STM32F103RBT6
1.2 引脚资源分配
1.3 独立看门狗概述 独立看门狗可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,产生系统复位。独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 IWDG的主要性能 ● 自由运行的递减计数器 ; ● 时钟由独立的RC振荡器提供(可在停止和待机模式下工作); ● 看门狗被激活后,则在计数器计数至0x000时产生复位。 1.4 实现功能 1、上电初始化后,LED2灯亮; 2、在While(1)中进行按键检测,若检测到按键,喂狗,将灯熄灭; 3、若未检测到按键,系统自动复位; 4、采用内部LSI时钟,16分频,预装载值4096(0xFFF)。 2 软件开发 2.1 CUBEMX配置 时钟配置
激活IDWG,分频系数改为16,预装载值设为4096。
独立看门狗由LSI提供时钟
这里可以计算得到看门狗复位时间如下,这个时间足够我们操作按键喂狗。 t=1/(400000Hz/16)×4096=1.638S 2.2 代码编写 1、使用CUBEMX生成代码后,会自动生成前面配置的独立看门狗的初始化函数(分频系数和预装载值)。
下面是这个函数的定义。
我们需要在main函数中初始化LED2灯,点亮。
2、在while(1)中增加按键检测和喂狗操作。当检测到按键时,执行喂狗以及将LED2灯熄灭。
这里的HAL_IWDG_Refresh函数的功能是在键寄存器IWDG_KR中写入0xAAAA,也就是喂狗操作。 这里的按键检测,是不严谨的,因为按键会抖动,所以这里可能存在喂狗多次,下面是按键检测的函数,加入了while();循环,只有在按键弹起时才返回数据。 在初始化按键的IO口,切记要注意上下拉操作,如果是低电平有效就上拉,如果是高电平有效就下拉,不配置或者配置相反,都有可能导致按键不可用,或者不符合逻辑。
3 实验结果 实验结果:未检测到按键时,LED2灯常亮,当在规定的时间内按键操作,LED2灯熄灭。
|
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
手把手教你VSCode搭建STM32开发环境
RTOS在STM32中的应用
【下载有礼】STM32 Finder华为应用商店正式上线!移动选型工具助力开发效率升级
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
微信公众号
手机版