硬件:S32K144开发板
软件:S32DS 2.2
1,S32K144硬件连接说明
看门狗定时器时间到没有喂狗就会触发系统复位,反之定时时间内喂狗会正常工作,可以避免程序跑飞等软硬件问题。 IO口分配情况如下,S32K144开发板具有3个按键和4个LED灯,具体与芯片的引脚连接情况如下所示。
* IO口分配情况
* KEY1 PTC12
2,S32K144的WDOG配置
S32DS的外设配置通过图形配置工具Component Inspector来实现。双击Components(1)按钮来添加外设。双击WDOG(2)添加WDOG看门狗外设。
进行图形化配置界面,首先配置看门狗时钟源为LPO(1),频率为128KHz。其次配置Timeout Value超时时间也就是喂狗时间(2),设置为64000,超时时间也就是500ms。
计算方法如下
3,S32K144的WDOG常用函数说明
1,看门狗初始化函数WDOG_DRV_Init。输入变量instance为看门狗实例,输入变量userConfigPtr为配置结构体。
/*功能**********************************************************************
*
* 函数名称 : WDOG_DRV_Init
* 说明:初始化 WDOG 驱动程序
*结束**************************************************************************/
status_t WDOG_DRV_Init(uint32_t instance,
const wdog_user_config_t * userConfigPtr)
2,看门狗喂狗函数WDOG_DRV_Trigger。输入变量instance为看门狗实例。
/*功能**********************************************************************
*
* 函数名称 : WDOG_DRV_Trigger
* 描述 : 刷新 WDOG 计数器
*结束**************************************************************************/
void WDOG_DRV_Trigger(uint32_t instance)
4,S32K144的WDOG实战
系统重新初始化会串口发送”系统复位“,按下按键1会进行喂狗。
int main(void)
{
//...以上省略
u1_printf("系统复位\r\n");
WDOG_DRV_Init(INST_WATCHDOG1, &watchdog1_Config0);//看门狗定时器初始化
INT_SYS_InstallHandler(WDOG_EWM_IRQn, WDOG_ISR, NULL);//安装看门狗中断
INT_SYS_EnableIRQ(WDOG_EWM_IRQn);//使能看门狗中断
while(1)
{
pinstate = KEY_Proc (1);
if(pinstate ==BTN1_PRES )
{
WDOG_DRV_Trigger(INST_WATCHDOG1);//进行喂狗
u1_printf("喂狗成功 \r\n");
}
}
串口助手显示内容如下,不及时喂狗会一直复位。试验成功。
标签:进阶,WDOG,DRV,Trigger,S32K144,喂狗,看门狗 From: https://blog.csdn.net/LC_8575/article/details/141709478