OpenEdv-开源电子网

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

一个中断函数问题

[复制链接]

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2017-12-7 09:15:30 | 显示全部楼层 |阅读模式
1金钱
函数1:
/**
  * @brief  Clears the EXTI's line pending flags.
  * @param  EXTI_Line: specifies the EXTI lines flags to clear.
  *   This parameter can be any combination of EXTI_Linex where x can be (0..19).
  * @retval None
  */
void EXTI_ClearFlag(uint32_t EXTI_Line)
{
  /* Check the parameters */
  assert_param(IS_EXTI_LINE(EXTI_Line));

  EXTI->PR = EXTI_Line;
}

函数2:
/**
  * @brief  Clears the EXTI's line pending bits.
  * @param  EXTI_Line: specifies the EXTI lines to clear.
  *   This parameter can be any combination of EXTI_Linex where x can be (0..19).
  * @retval None
  */
void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
{
  /* Check the parameters */
  assert_param(IS_EXTI_LINE(EXTI_Line));

  EXTI->PR = EXTI_Line;
}

这两个函数,功能描述只有一字之差,但是代码实现完全一致,请问这两个函数区别在哪里?或者说什么情况下使用哪一个函数

最佳答案

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

在不同环境下使用,方便区分意义。ClearITPendingBit可以认为只在清除中断标志位的时候用,ClearFlag可以用在事件发生时清除事件标记,实际上是一个东西。所以,没必要太纠结
没有脑袋
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-12-7 09:15:31 | 显示全部楼层
在不同环境下使用,方便区分意义。ClearITPendingBit可以认为只在清除中断标志位的时候用,ClearFlag可以用在事件发生时清除事件标记,实际上是一个东西。所以,没必要太纠结
回复

使用道具 举报

62

主题

903

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3567
金钱
3567
注册时间
2016-1-8
在线时间
544 小时
发表于 2017-12-7 10:38:11 | 显示全部楼层
两个不同的封装吧
回复

使用道具 举报

28

主题

133

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2016-11-22
在线时间
66 小时
发表于 2017-12-7 11:13:01 | 显示全部楼层
效果应该是一样的,只需要关注函数里面的代码是怎样的就可以了
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
发表于 2017-12-7 11:25:27 | 显示全部楼层
以下是个人理解,欢迎指正:

小时候,老师告诉我们:“饭前便后要洗手”。
其实,不管是饭前的“洗手”和便后的“洗手“,“洗手”这个动作本身可以认为是一样的。
只不过为了区分“洗手”的原因,我们对每次“洗手”进行了一次封装。比如,这是饭前的“洗手”,这是便后的“洗手”,这样使得我们对事物的表达更加清楚,仅此而已。
电子爱好者
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
 楼主| 发表于 2017-12-7 11:27:58 | 显示全部楼层
Sun_Fly 发表于 2017-12-7 10:38
两个不同的封装吧

能不能再描述具体点,哪里的封装
没有脑袋
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
 楼主| 发表于 2017-12-7 11:28:27 | 显示全部楼层
ARM学员 发表于 2017-12-7 11:13
效果应该是一样的,只需要关注函数里面的代码是怎样的就可以了

函数的代码是一样的。。。
没有脑袋
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
 楼主| 发表于 2017-12-7 11:29:30 | 显示全部楼层
liuchang 发表于 2017-12-7 11:25
以下是个人理解,欢迎指正:

小时候,老师告诉我们:“饭前便后要洗手”。

问题就是在于这个封装,分别对应什么情况下的封装
没有脑袋
回复

使用道具 举报

28

主题

133

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2016-11-22
在线时间
66 小时
发表于 2017-12-7 11:39:33 | 显示全部楼层
美丽的时光机器 发表于 2017-12-7 11:28
函数的代码是一样的。。。

是呀,是一样的,任何情况下调用这两个函数都可以
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-12-18 18:51:00 | 显示全部楼层
原厂的库文件可能是软件转换出来的.就多了一个.在另外一个单片机的型号上,可能他们两个程序是有区别的.在你这个上面可能是一样的.
楼主不必在意他.
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-23 18:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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