OpenEdv-开源电子网

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

窗口看门狗调一天了,不知道哪错了大神来拯救一下啊~~!!拜谢!(问题已解决)

[复制链接]

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2015-9-13
在线时间
9 小时
发表于 2015-10-21 21:09:53 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include "wwdg.h" #include "led.h" #include "stm32f10x.h" #include "delay.h" #include "sys.h" u8 WWDG_CNT=0x7f; void WWDG_Init(u8 tr,u8 wr,u32 fprer) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE); WWDG_CNT=tr&WWDG_CNT; WWDG_SetPrescaler(fprer); WWDG_SetWindowValue(wr); WWDG_Enable(WWDG_CNT); WWDG_ClearFlag(); WWDG_NVIC_Init(); WWDG_EnableIT(); } void WWDG_NVIC_Init(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; NVIC_Init(&NVIC_InitStructure); } void WWDG_IRQHandler(void) { WWDG_SetCounter(WWDG_CNT); WWDG_ClearFlag(); LED1=!LED1; } int main(void) { delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); LED_Init(); WWDG_Init(0X7F,0X5F,WWDG_Prescaler_8); LED0=0; delay_ms(300); while(1) { LED0=1; } } [/mw_shl_code]
LED_Init()只是设置LED0和LED1全关闭。试验现象是LED0闪一下然后就灭了…也就是压根没进中断服务函数啊…是我哪里配置错了?对照源码半天看不出个所以然来…希望大家不吝赐教
0 error 0 warning
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-21 21:39:30 | 显示全部楼层
下载开发板例程试试先
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2015-9-13
在线时间
9 小时
 楼主| 发表于 2015-10-21 21:40:43 | 显示全部楼层
开发板例程跑着没问题…但是我的到底哪里错了…真的是费解啊!!!我都抓狂了…
0 error 0 warning
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2015-9-13
在线时间
9 小时
 楼主| 发表于 2015-10-21 22:02:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我看库函数源码WWDG_SetCounter(WWDG_CNT);貌似只是设置初值的吧,好像没有重装载功能啊(@brief Sets the WWDG counter value),应该是WWDG_Eable(WWDG_CNT)从装载吧…(@brief Enables WWDG and load the counter value)
不管哪个函数对,但都不写应该是LED0闪烁吧,但是我的实验现象是LED0一直亮
两个随便写一个就是LED0闪一下就没现象了…
0 error 0 warning
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2015-9-13
在线时间
9 小时
 楼主| 发表于 2015-10-21 22:14:49 | 显示全部楼层
回复【4楼】离殇:不管哪个函数对,但都不写应该是LED0闪烁吧,但是我的实验现象是LED0一直亮 
---------------------------------
这个是因为延时太长了,修改了延时LED0开始闪烁,但是LED1一直是灭的…说明看门狗开启了,但是从来没进中断服务函数,所以原因应该是没开启中断?但是void WWDG_EnableIT()( @brief  Enables the WWDG Early Wakeup interrupt(EWI).)函数我已经写了啊,这个不就是早唤醒中断使能吗…既然写了,那么久说明这条语句根本没起作用啊,那我就只能推测是语句顺序导致这条语句无效了…就好比先写了GPIO_Init(),后写的GPIO配置。但是你的源程序就是这么写的啊…我该怎么办啊…………!抓狂ING!
0 error 0 warning
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2015-9-13
在线时间
9 小时
 楼主| 发表于 2015-10-22 17:49:38 | 显示全部楼层
忽略了最基本的东西,没使能GPIOE的时钟……………………哎,只关注窗口看门狗部分了…以后长记性了…
0 error 0 warning
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-2-21
在线时间
2 小时
发表于 2016-3-8 16:54:33 | 显示全部楼层
我也遇到了一样的问题,我就是窗口看门狗无法使能,这应也是这个问题。但是我是直接让 WWDG->CR=0xff,都无法使能窗口看门狗。求大神们指教
回复

使用道具 举报

0

主题

63

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3867
金钱
3867
注册时间
2015-8-26
在线时间
285 小时
发表于 2016-3-8 18:29:57 | 显示全部楼层
路过看看
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 13:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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