正点原子stm32第30~31讲知识总结

窗口看门狗

        窗口就是喂狗事件有一个上下限范围内(窗口);

        独立看门狗限制的喂狗时间在0-x,x由相关寄存器决定。

        

 如图是窗口看门狗的工作示意图;只有在刷新窗口才可以喂狗,否则会引起复位。

stm32窗口看门狗复位有两种情况:1.当喂狗的时候如果计数器的值大于某一设定数值W[6:0]时,此设定数值在WWDG_CFR寄存器定义。2.当计数器的数值从0x40减到0x3F时【T6位跳变到0】

超时公式:

 窗口看门狗相比于独立看门狗,可以更稳定,避免独立看门狗提前或滞后的情况,从而检测出非正常执行的代码段。

注意事项:

1. 上窗口值W[6:0]必须大于下窗口值0x40。否则就无窗口了。

2.  窗口看门狗时钟来源PCLK1(APB1总线时钟)分频后。

窗口看门狗配置步骤:

使能看门狗时钟:

     RCC_APB1PeriphClockCmd();

②  设置分频系数:

     WWDG_SetPrescaler();

设置上窗口值:

     WWDG_SetWindowValue();

开启提前唤醒中断并分组(可选)

     WWDG_EnableIT();  

     NVIC_Init();

使能看门狗:

     WWDG_Enable();

喂狗:

    WWDG_SetCounter();

⑦编写中断服务函数

   WWDG_IRQHandler();

接下来话不多说上代码:

其中WWDG_CNT需要定义为全局变量,0x7f 。

通用定时器基本原理

stm32最多拥有8个定时器

stm32拥有三种定时器:高级定时器,通用定时器,基本定时器;

stm32三种定时器的区别:

 通用定时器功能特点描述:

1. 位于低速的 APB1 总线上 (APB1)
2. 16  位向上、向下、向上 / 向下 ( 中心对齐 ) 计数模式,自动装载计数器( TIMx_CNT )。
3. 16  位可编程 ( 可以实时修改 ) 预分频器 ( TIMx_PSC ) ,计数器时钟频率的分频系数 为  1 65535  之间的任意数值。
4. 个独立通道( TIMx_CH1~4 ),这些通道可以用来作为: 
输入捕获 
输出比较
③  PWM  生成 ( 边缘或中间对齐模式
单脉冲模式输出 
5. 可使用外部信号( TIMx_ETR )控制定时器和定时器互连(可以用  个定时器控制另外一个定时器)的同步电路。
通用定时器通常被用于测量输入信号的脉冲长度和产生输出波形
通用定时器有三种计数器模式:

向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。

②向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。

③中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。

通用定时器工作过程实为复杂,博主因水品问题说不明白,望读者见谅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值