[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闪一下然后就灭了…也就是压根没进中断服务函数啊…是我哪里配置错了?对照源码半天看不出个所以然来…希望大家不吝赐教 |