野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9712|回复: 1

关于定时器的问题

[复制链接]
发表于 2017-9-12 15:06:58 | 显示全部楼层 |阅读模式
本帖最后由 jiemorang 于 2017-9-12 15:11 编辑
  1. void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)
  2. {  
  3.   /* Check the parameters */
  4.   assert_param(IS_TIM_ALL_PERIPH(TIMx));
  5.   assert_param(IS_TIM_CLEAR_FLAG(TIM_FLAG));
  6.    
  7.   /* Clear the flags */
  8.   TIMx->SR = (uint16_t)~TIM_FLAG;
  9. }
  10. #define IS_TIM_CLEAR_FLAG(TIM_FLAG) ((((TIM_FLAG) & (uint16_t)0xE100) == 0x0000) && ((TIM_FLAG) != 0x0000))


  11. void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
  12. {
  13.   /* Check the parameters */
  14.   assert_param(IS_TIM_ALL_PERIPH(TIMx));
  15.   assert_param(IS_TIM_IT(TIM_IT));
  16.   /* Clear the IT pending Bit */
  17.   TIMx->SR = (uint16_t)~TIM_IT;
  18. }
  19. #define IS_TIM_IT(IT) ((((IT) & (uint16_t)0xFF00) == 0x0000) && ((IT) != 0x0000))
复制代码
我想问一下void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)和void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)这两个函数有什么区别!在火哥关于定时器输入捕获的历程中,我把void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)改成了void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)后程序没有影响,所以对着两个函数的用法
不太理解,总是不太能区分,请各位大神指点指点!!!!!
回复

使用道具 举报

发表于 2017-9-12 16:30:58 | 显示全部楼层
具体的看想函数的内部,看下他们具体操作哪个寄存器的那个位就行了。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 08:08 , Processed in 0.030169 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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