野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12627|回复: 3

请教大佬关于exti头文件中的2个函数的问题

[复制链接]
发表于 2019-5-3 17:56:16 | 显示全部楼层 |阅读模式
在exti中出现这两个 清除函数不是相同吗
还有就是为什么 这条指令     EXTI->PR = EXTI_Line;   不是这样子:   EXTI->PR |= EXTI_Line;(不是或上吗,不或上的话出现多个中断线时候不是有问题吗)


void EXTI_ClearFlag(uint32_t EXTI_Line)
{
  /* Check the parameters */
  assert_param(IS_EXTI_LINE(EXTI_Line));

  EXTI->PR = EXTI_Line;
}



void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
{
  /* Check the parameters */
  assert_param(IS_EXTI_LINE(EXTI_Line));

  EXTI->PR = EXTI_Line;
}





回复

使用道具 举报

发表于 2019-5-4 11:50:46 | 显示全部楼层
ClearFlag 和ClearITPendingBit 在很多外设上都有这个两个函数,函数内写法不同,结果是一样,至于有什么区别,名字有区别  到底有什么区别你百度看看

第二个问题:



你看芯片手册查寄存器,写1是清除

你看芯片手册查寄存器,写1是清除

然后这是宏定义, 所以 | ,是你传参数数时,自己去 | 你想要多个宏就 | 多少个

然后这是宏定义, 所以 | ,是你传参数数时,自己去 | 你想要多个宏就 | 多少个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-4 15:32:55 | 显示全部楼层
请问下老师:
那个EXTI_PR的寄存器当在有边沿触发的时候不是就有置一吗,然后它是 ,还有就是置一之后是不是自动就会清零呀;百度上一直没有寻找到答案
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-4 15:34:35 | 显示全部楼层

请问下老师:
那个EXTI_PR的寄存器当在有边沿触发的时候不是就有置一吗,然后它是怎么判断是写入的置一还是边沿检测到有触发的 ,还有就是置一之后是不是自动就会清零呀;百度上一直没有寻找到答
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 18:09 , Processed in 0.029421 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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