文章目录

  • 前言
  • 建立工程
  • ProcessorExpert配置
  • 代码补全
  • 完整工程下载
  • 微信公众号

前言

S32K1xx Series Reference Manual的pdf文档23章给出了看门狗的框图:

先不用细看, 下面结合PE配置看. 本文中用到LPUART2(PTA8, PTA9), 用的J-Link调试, S32K148_SDK 3.0.0.

建立工程

打开S32 Design Studio for ARM, 接下来步骤:

  • File -> New -> S32DS Application Project
  • Processors 选择 S32K148, Project Name 填你自己的工程名
  • Select SDK: SDKs 选择 S32K148_SDK 3.0.0, Debugger选择J-Link, Finish.

ProcessorExpert配置

双击工程名, 点击Components窗口Components目录下的 pin_mux:PinSetting, LPUART中选择PTA8/PTA9, 并设置发送为Output:

Component Library中双击添加lpuart组件, 配置lpuart, 选择LPUART2, 波特率115200:

Component Library中双击添加wdog组件, 配置wdog:

  • 时钟源默认WDOG_LPO_CLOCK(128kHz默认, 可到clock_manager中修改为32kHz或者1kHz)
  • 勾选预分配使能(鼠标悬停提示固定256分频, 这样clock cycle就变成了500Hz)
  • 中断不用(有用过的可以评论下使用方法)
  • 窗口不用(用的话, 在Window Value~Timeout Value之间才能喂狗, 条件苛刻)
  • 设置Timeout Value为500, 也就是1s内喂狗就不会复位了, 注意Window ValueTimeout Value都是16位计数器, 值必须在[1, 65535], 否则无效(回到之前的值)

    点击生成代码:

代码补全

添加LPUART2printf支持:

/* User includes (#include below this line is not maintained by Processor Expert) */
#include <stdio.h>
#include "ewl_misra_types.h"
#include "file_struc.h"int_t __write_console(__file_handle handle, uchar_t * buffer, size_t * count)
{uint32_t bytesRemain;size_t bytes=*count;uchar_t ret_car[]={"\r"};LPUART_DRV_SendData(INST_LPUART2, buffer, bytes);while(LPUART_DRV_GetTransmitStatus(INST_LPUART2, &bytesRemain) != STATUS_SUCCESS);LPUART_DRV_SendData(INST_LPUART2, ret_car, 1);while(LPUART_DRV_GetTransmitStatus(INST_LPUART2, &bytesRemain) != STATUS_SUCCESS);return 0;
}

main函数中系统和引脚的初始化:

  /* Write your code here *//* For example: for(;;) { } */CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);

串口的初始化:

  LPUART_DRV_Init(INST_LPUART2, &lpuart2_State, &lpuart2_InitConfig0);

看门狗初始化和喂狗:

  /* Initialize WDOG */WDOG_DRV_Init(INST_WATCHDOG1, &watchdog1_Config0);printf("watchdog enable!\r\n");while (1){printf("xixiheheheihei\r\n");for (uint32_t i = 0; i < 2989000*2; i++);   //about 2s/* Reset Watchdog counter */WDOG_DRV_Trigger(INST_WATCHDOG1);}

2s后喂狗, 肯定来不及, 系统会复位, 调试运行试试:

可以看到, 约1s系统复位一次. 现在把延时改成约0.5s, 这样狗就能喂上了:

  /* Initialize WDOG */WDOG_DRV_Init(INST_WATCHDOG1, &watchdog1_Config0);printf("watchdog enable!\r\n");while (1){printf("xixiheheheihei\r\n");for (uint32_t i = 0; i < 2989000/2; i++);   //about 0.5s/* Reset Watchdog counter */WDOG_DRV_Trigger(INST_WATCHDOG1);}

调试运行, 系统不再复位, 符合预期:

完整工程下载

https://download.csdn.net/download/weifengdq/12011905

微信公众号

欢迎扫描二维码关注本人微信公众号, 及时获取或者发送给我最新消息:

S32K148 SDK3.0 PE配置 看门狗(WDOG)相关推荐

  1. N76E003配置看门狗watchdog

    说明 本例子只做软件异常时重置系统用,不需要用作定时器或唤醒用,所以不用打开watchdog中断.需要注意的是:如果上次启动开启过watchdog reset,想要关闭,下次启动必须清除CONFIG4 ...

  2. s32k144 芯片中关于软件看门狗(wdog)模块的使用

    一.开始添加配置wdog模块  1.双击Components按钮添加wdog模块 2.双击wdog添加到自己的项目中 3.双击watchog1 模块进行看门狗配置 最大超时喂狗时间= 超时计时器/时钟 ...

  3. STM32配置看门狗

    一.看门狗时间计算公式 时间计算(大概):Tout=((4*2^prer)*rlr)/40 (ms). prer:分频数:0~7 rlr:重装载寄存器值 举例(4 * 2^4 * 625) /40=1 ...

  4. S32K148 CAN_PAL SDK_RTM300 PE配置

    文章目录 前言 建立工程 ProcessorExpert配置 发送接收代码参考 调试验证 微信公众号 前言 S32K148----SDK笔记----CAN收发 前面写过这个S32K flexcan组件 ...

  5. 对于MCU看门狗IIWDG WWDG喂狗时间的配置参考

    对于MCU看门狗IIWDG WWDG喂狗时间的配置参考可以参考MCU的datasheet: 在每个MCU的datasheet中都有这样的表格: 6.3.25 Timer characteristics ...

  6. STM32学习笔记——窗口看门狗WWDG介绍及配置

    WWDG 窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障.除非递减计数器的值在T6位(WWDG->CR 的第六位)变成0前被刷新,看门狗 ...

  7. STM8S看门狗配置失败的原因

    配置STM8S207的看门狗,必须先使能看门狗功能模块,然后再配置其参数,这个和STM32F103不同. //函数功能:配置看门狗复位时间为1000毫秒 void IWDG_Config(void) ...

  8. STM32L4单片机配置STOP模式下停止看门狗计数

    STM32L4系列的单片机,在stop模式或是standby模式下可以停止看门狗计数器,唤醒后,看门狗继续计数.这样,在单片机休眠期间,就可以不用喂狗,避免单片机频繁唤醒,可以节约更多能耗. 配置需要 ...

  9. GD32F4xx系列的看门狗配置

    GD32F4xx系列的独立看门狗配置: 查看GD32F4的独立看门狗有一个32K的独立时钟源,适用于粗略计时 不同的预分频系数下最大和最小的超时时间: 看门狗超时时间计算公式: T=Count / ( ...

最新文章

  1. 计算机转集成光学,集成光学
  2. TensorFlow Lite+Android,Google要搞的大事情
  3. java编写斐波那契数列,实战案例
  4. Unity-多核优化1-C#JobSystem
  5. 管理项目的问题跟踪器的提示
  6. Dubbo学习总结(8)——阿里开源框架:Dubbo2.7 三大新特性详解!
  7. Unity3D基础2:新建模型
  8. 【CAS】CAS原理
  9. 神经网络和深度学习-习题
  10. 51单片机驱动红外编解码模块(YS-IRTM)
  11. Gesture Recognition
  12. yuv420格式nv12,nv21,I420,YV12互转
  13. ubuntu显示扩展名
  14. 机器学习面试问题汇总
  15. 已解决ValueError: 4 columns passed, passed data had 2 columns
  16. Android展示PDF文件(文字,签章,签名)
  17. Java:限流器(RateLimiter)原理与实现
  18. java jode_Java中joda日期格式化工具的使用示例
  19. android反加固,android反编译与加固
  20. 攻防世界misc高手进阶区刷题记录

热门文章

  1. 知数云接入微信群机器人
  2. 论文笔记:Decoding Brain Representations by Multimodal Learning of Neural Activity and Visual Features
  3. 页面跳转forward和redirect两者区别
  4. texstudio闪退
  5. 各种颜色代码大全(Html、android)
  6. Recast Navigation 学习笔记(二)
  7. VueCli番外之recast
  8. 想要实现带货直播源码秒开?先看看这个
  9. window.onresize和window.addEventListener
  10. 如何在windows下运行nasm