OpenEdv-开源电子网

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

寄存器版本,刚学到窗口看门狗那里,示例的代码最后说是LED灯每秒大约闪8次,怎么算出来的啊?

[复制链接]

0

主题

0

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-8-4
在线时间
1 小时
发表于 2019-8-4 00:09:25 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 未知的元二月 于 2019-8-4 00:28 编辑

这是主函数
int main(void)
{
Stm32_Clock_Init(9);    //系统时钟设置
uart_init(72,115200);   //串口初始化为115200
delay_init(72);         //延时初始化
LED_Init();             //初始化与 LED 连接的硬件接口
LED0=0;                 //点亮 DS0
    delay_ms(1000);          //延时 1000ms,让人可以看到 DS0 灭的状态
    WWDG_Init(0X7F,0X5F,3); //计数器值为7f,窗口寄存器为5f,分频数为8
while(1)
   {
  LED0=1;    //灭DS1
   }
}

这是wdg的c文件函数
//保存 WWDG 计数器的设置值,默认为最大.
u8 WWDG_CNT=0x7f;
//初始化窗口看门狗
//tr :T[6:0],计数器值
//wr :W[6:0],窗口值
//fprer:分频系数(WDGTB),仅最低 2 位有效
//Fwwdg=PCLK1/(4096*2^fprer).
void WWDG_Init(u8 tr,u8 wr,u8 fprer)
{
RCC->APB1ENR|=1<<11;   //使能 wwdg 时钟
WWDG_CNT=tr&WWDG_CNT;  //初始化 WWDG_CNT.
WWDG->CFR|=fprer<<7;   //PCLK1/4096 再除 2^fprer
WWDG->CFR&=0XFF80;
WWDG->CFR|=wr;         //设定窗口值
WWDG->CR|=WWDG_CNT;    //设定计数器值
WWDG->CR|=1<<7;        //开启看门狗
MY_NVIC_Init(2,3,WWDG_IRQn,2);//抢占 2,子优先级 3,组 2
WWDG->SR=0X00;         //清除提前唤醒中断标志位
WWDG->CFR|=1<<9;       //使能提前唤醒中断
}
//重设置 WWDG 计数器的值
void WWDG_Set_Counter(u8 cnt)
{
WWDG->CR =(cnt&0x7F);//重设置 7 位计数器
}
//窗口看门狗中断服务程序
void WWDG_IRQHandler(void)
{
WWDG_Set_Counter(WWDG_CNT);//重设窗口看门狗的值,即喂狗
WWDG->SR=0X00;//清除提前唤醒中断标志位
LED1=!LED1;
}

最佳答案

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

Fpclk=36M,那么根据窗口看门狗的超时公式: Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1 Twwdg:WWDG超时时间(ms) Fpclk1:APB1 的时钟频率(Khz) WDGTB: WWDG 的预分频系数 T[5:0]:WWDG->CR低6位 此时Twwdg=(4096×8×64) / 36000(Khz) = 58.254ms 闪烁一次时间再乘以2,1000ms差不多闪烁8次
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2019-7-25
在线时间
57 小时
发表于 2019-8-4 00:09:26 | 显示全部楼层
Fpclk=36M,那么根据窗口看门狗的超时公式:
Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1
Twwdg:WWDG超时时间(ms)
Fpclk1:APB1 的时钟频率(Khz)
WDGTB: WWDG 的预分频系数
T[5:0]:WWDG->CR低6位

此时Twwdg=(4096×8×64) / 36000(Khz) = 58.254ms
闪烁一次时间再乘以2,1000ms差不多闪烁8次
回复

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2019-3-29
在线时间
22 小时
发表于 2019-8-16 19:59:14 来自手机 | 显示全部楼层
64怎么算出来的额,不是5f-40是32的嘛
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 14:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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