OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4433|回复: 5

窗口看门狗好像不能中断,设置我对照例程调了一个晚上,觉得没问题,还望各位能够指点下

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-3-17
在线时间
0 小时
发表于 2015-3-17 22:04:22 | 显示全部楼层 |阅读模式
5金钱
下面附上我的程序,烦请各位能指点下

窗口看门狗的源程序:

#include "wwdg.h"
#include "led.h"

uint8_t set1=0x7f;

void WWDG_Init(u32 prer,u8 value,u8 counter)
{
RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE);

set1=set1&counter;

WWDG_SetPrescaler(prer);

WWDG_SetWindowValue(value);

WWDG_Enable(set1);

WWDG_ClearFlag();

WWDG_NVIC_Init();

WWDG_EnableIT();
}

void WWDG_NVIC_Init()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}

void WWDG_IRQHandler(void)
{
  WWDG_SetCounter(set1);
  WWDG_ClearFlag();
  LED1=0;
}

主函数:

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "wwdg.h"
int main(void)
{
delay_init();
NVIC_Configuration();
uart_init(9600);
LED_Init();
LED0=0;
delay_ms(300);
WWDG_Init(WWDG_Prescaler_8,0X5F,0X7F);

printf("Reset System\r\n");

while(1)
{
LED0=1;
printf("System is running\r\n");
delay_ms(1000);
}
}

(1)我在线仿真,观察过看门狗的每个寄存器值得变化,都是正常的,可是进不了中断函数;如果进不了中断,应该复位,可是从串口调试助手上能够接收到一次“Reset System”,然后一直是"System is running",烦请各位能够指点,在这里谢过了~

最佳答案

查看完整内容[请看2#楼]

问题已经解决,是上面时钟开启使能函数用错~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-3-17
在线时间
0 小时
 楼主| 发表于 2015-3-17 22:04:23 | 显示全部楼层
问题已经解决,是上面时钟开启使能函数用错~
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-17 22:48:46 | 显示全部楼层
说明 你的中断运行良好啊.
可以直接参考我们的库函数版本窗口看门狗例程.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-3-17
在线时间
0 小时
 楼主| 发表于 2015-3-18 19:53:50 | 显示全部楼层
回复【2楼】正点原子:
-------------------------------
如果中断运行良好,LED1应该一直亮的,我中断里面设置LED1=0,可是LED1一直不亮,论坛里面看门狗这个板块的帖子我也看了好多,也好像没有遇到我这样情况的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-18 21:53:28 | 显示全部楼层
回复【3楼】captain_wang:
---------------------------------
你可以仿真的话,先全速运行,然后当你感觉程序死机了的时候,按红色的X,看看代码停在哪里.进而分析问题.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-3-17
在线时间
0 小时
 楼主| 发表于 2015-3-23 17:56:01 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
好的,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 11:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表