OpenEdv-开源电子网

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

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

[复制链接]

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2016-7-28
在线时间
16 小时
发表于 2016-10-20 18:12:53 | 显示全部楼层 |阅读模式
10金钱
我用的是正点原子的探索版开发板,实验功能是红灯亮灭以后,绿灯不停闪烁,我的程序如下:


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();
}


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




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-10-20 20:32:34 | 显示全部楼层
直接下载我们例程呢?
回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2016-7-28
在线时间
16 小时
 楼主| 发表于 2016-10-21 16:05:39 | 显示全部楼层
正点原子 发表于 2016-10-20 20:32
直接下载我们例程呢?

直接下载历程是可以正常运行的
回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2016-7-28
在线时间
16 小时
 楼主| 发表于 2016-10-21 16:11:24 | 显示全部楼层
正点原子 发表于 2016-10-20 20:32
直接下载我们例程呢?

我就是语句顺序有两处与例程不一样,第一处我把WWDG_Enable(b);放到WWDG_Init()函数的最后了;第二处,把中断服务函数里的GPIO_WriteBit函数和WWDG_ClearFlag()函数位置对换。
如果把这两处都改正,程序可以正常运行,但我就是想不通为什么我的写法不行,请原子哥解惑,谢谢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-10-23 00:44:17 | 显示全部楼层
在WWDG_IRQHandler里面,加入对SR寄存器的判断
回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2016-7-28
在线时间
16 小时
 楼主| 发表于 2016-10-25 00:00:10 | 显示全部楼层
正点原子 发表于 2016-10-23 00:44
在WWDG_IRQHandler里面,加入对SR寄存器的判断

原子哥能不能讲得详细点呢,还有就是,用了例程的中断服务函数后且仍然保留了我第一处的改动后,程序依然不正常
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-10-27 23:03:17 | 显示全部楼层
wrnb11 发表于 2016-10-25 00:00
原子哥能不能讲得详细点呢,还有就是,用了例程的中断服务函数后且仍然保留了我第一处的改动后,程序依然 ...

参考我们F767的代码,看下就知道了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 06:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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