初始化之前使寄存器恢复缺省值的重要性

TIM_BDTRInitTypeDef      TIM_BDTRInitStructure;

TIM_BDTRStructInit(&TIM_BDTRInitStructure);//缺省值(一般为0)必须要有,为了保证寄存器的 值不是上电随机数

TIM_BDTRInitStructure.TIM_DeadTime = 0x0A; //死区时间设置

TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure);   

如果没有TIM_BDTRStructInit(&TIM_BDTRInitStructure);代码运行就不会出现你想要的结果。那有人肯定会问“为什么类似初始化代码,我没有恢复缺省值,代码运行也没问题呀!”。下面我来详细分析一下这个问题:

如果这段初始化代码用寄存器方式写就一句话,非常简洁:TIM1->BDTR|=0x0A;      //死区时间设置

BDTR寄存器是16位的,有些人自己手动对寄存器的每个位都设定了自己所需要的值,那么这种情况下,是可以不恢复缺省值的,因为寄存器中的值都确定了。如果有些人只用到了寄存器的某几个位,那么其他位没用到,防止没用到的位上电默认的值是如果不是0(一般情况下为0),就会对整个配置造成影响。所以在配置前,最好先恢复缺省值!!!

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值