有关窗口独立狗实验的问题,请大家进来帮我解答一下,谢谢

2019-07-20 19:16发布

我用的是正点原子的探索版开发板,实验功能是红灯亮灭以后,绿灯不停闪烁,我的程序如下:


main.c

#include"stm32f4xx.h"
#include"LED.h"
#include"WWDG.h"
#include"delay.h"
u8 a,b;
u32 p;
int main()
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
led_init();
delay_init(168);
GPIO_ResetBits(GPIOF,GPIO_Pin_9);
delay_ms(300);
WWDG_Init(WWDG_Prescaler_8,0x5F,0x7F);
while(1)
{
  GPIO_SetBits(GPIOF,GPIO_Pin_9);//红灯
}
}


WWDG.c

#include"stm32f4xx.h"
#include"WWDG.h"
u8 d=0x7f;
void WWDG_Init(u32 p,u8 a,u8 b)
{
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);
WWDG_SetPrescaler(p);
WWDG_SetWindowValue(a);



NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);

WWDG_ClearFlag();
WWDG_EnableIT();
WWDG_SetCounter(b);
  WWDG_Enable(b);
}
void WWDG_IRQHandler(void)
{
WWDG_SetCounter(d);
GPIO_WriteBit(GPIOF,GPIO_Pin_10,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_10)));//绿灯
WWDG_ClearFlag();
}


实验结果是红灯常亮,请问为什么会这样。。。我的程序跟例程内容一样,就是语句的顺序有区别




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-20 19:57
直接下载我们例程呢?
wrnb11
2楼-- · 2019-07-20 23:34
正点原子 发表于 2016-10-20 20:32
直接下载我们例程呢?

直接下载历程是可以正常运行的
wrnb11
3楼-- · 2019-07-20 23:55
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-21 01:10
 精彩回答 2  元偷偷看……
wrnb11
5楼-- · 2019-07-21 01:42
正点原子 发表于 2016-10-23 00:44
在WWDG_IRQHandler里面,加入对SR寄存器的判断

原子哥能不能讲得详细点呢,还有就是,用了例程的中断服务函数后且仍然保留了我第一处的改动后,程序依然不正常
正点原子
6楼-- · 2019-07-21 05:53
wrnb11 发表于 2016-10-25 00:00
原子哥能不能讲得详细点呢,还有就是,用了例程的中断服务函数后且仍然保留了我第一处的改动后,程序依然 ...

参考我们F767的代码,看下就知道了。

一周热门 更多>