在STM32的函数库中,这两个函数实现的功能其实是一样的,都是清除对应的标志位,但是标志位和中断位的含义不一样,不是所有的标志位都可以产生中断。查看源代码如下:
#define ADC_IT_EOC                                 ((uint16_t)0x0220)
#define ADC_IT_AWD                                 ((uint16_t)0x0140)
#define ADC_IT_JEOC                                ((uint16_t)0x0480)
这是定义的中断位,可以产生中断
#define ADC_FLAG_AWD                               ((uint8_t)0x01)
#define ADC_FLAG_EOC                               ((uint8_t)0x02)
#define ADC_FLAG_JEOC                              ((uint8_t)0x04)
#define ADC_FLAG_JSTRT                             ((uint8_t)0x08)
#define ADC_FLAG_STRT                              ((uint8_t)0x10)
这是定义的标志位,二者对比可以发现有的标志位不能产生中断
标志位在程序中可以作为判定条件,支持程序的运行,中断则是跳转到中断函数执行。两个函数实现的功能是一样的,在中断程序中可以用两个中的任一个。区分两个函数是为了更清晰的显示函数库的严谨。
再具体分析下面的中断位和标志位:
#define ADC_IT_EOC                                 ((uint16_t)0x0220)
#define ADC_FLAG_EOC                               ((uint8_t)0x02)
这两个数值不同是因为标志位只是为了清除标志位而设的,而中断位设置成这个值是因为在其他函数中这一位还有其他用途。而且还要注意:
void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)
{/* Check the parameters */assert_param(IS_ADC_ALL_PERIPH(ADCx));assert_param(IS_ADC_CLEAR_FLAG(ADC_FLAG));/* Clear the selected ADC flags */ADCx->SR = ~(uint32_t)ADC_FLAG;
}
这一句ADCx->SR = ~(uint32_t)ADC_FLAG;应该是ADCx->SR &= ~(uint32_t)ADC_FLAG;
不过状态位只能由硬件置位,软件可以读和清零,所以这样写也是可以的。

标志位和中断位的区别:USART_ClearFlag和USART_ClearITPendingBit相关推荐

  1. TCP标志位 FIN和RST的区别

    大家都知道TCP释放连接需要四次挥手, 主动释放端会发送FIN包,并且因为TCP是双工的, 关闭一个方向上的数据流,从而TCP连接处于半关闭状态,这也是为什么需要"四次"挥手的原因 ...

  2. Python 正则表达式学习----flags 编译标志位

    Python 正则表达式学习--flags 编译标志位 关于正则表达式更多的内容,推荐https://blog.csdn.net/longerzone/article/details/24303161 ...

  3. c语言sgoto 标志位,如何在Go中设置TCP数据包的“不分段”标志位?(How to set “don't fragment” flag bit for TCP packet in Go?)...

    如何在Go中设置TCP数据包的"不分段"标志位?(How to set "don't fragment" flag bit for TCP packet in ...

  4. TCP协议中的PSH和URG标志位

    TCP段格式 源端口 数据发送方的端口号,2个字节 目的端口 数据接受方的端口,2个字节 序号 报文段序号,数据报文中第一个字节的序号.4个字节,共2的32次方个序列号. 确认序号 也是4个字节,是期 ...

  5. 汇编语言中常见的标志位: CF, PF, AF, ZF, SF,TF,IF,DF, OF

    一.运算结构标志位 1.CF(进位标志位):主要用来反映运算是否产生进位或借位,产生进位或借位则CF=1,否则CF=0. 2.PF(奇偶标志位):用于反映运算结果中"1"的个数的奇 ...

  6. 汇编语言中常用指令对标志位寄存器的影响

    参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...

  7. DOSBox debug中查看标志位

    debug中的标志位显示顺序  OF DF IF SF ZF AF PF CF OF 标志位(溢出)  OF = 1, 显示为OV  OF = 0, 显示为NV DF 标志位(方向)  DF = 0, ...

  8. ARM中CPSR的标志位中的C和V

    进位标志和溢出标志 这次大概总结一下进位标志(Carry Flag, CF)和溢出标志(Overflow Flag, OF)的含义和理解方式 首先明确一点基本认识,处理器本身并不在意也不知道参与算术运 ...

  9. 【超详总结/理解:正则表达式】特点/元字符/正则表达式中的标志位-flag/RegExp/重复操作与后向引用/匹配模式/表达邮箱/正则表达式对象的方法/利用正则表达式限制网页表单里的文本框输入内容

    文章目录 正则表达式: 正则表达式的用途 正则表达式的组成-元字符 正则表达式的特点 正则表达式中的标志位-flag JavaScript中的正则表达式解析 RegExp 定义 RegExp RegE ...

最新文章

  1. Contextualization
  2. Nand分区及nand erase简解
  3. html链接是什么意思,html中url什么意思?怎么用?
  4. addEventListener的click和onclick的区别
  5. chdir函数_PHP chdir()函数与示例
  6. 正则表达式匹配多个字符串中的一个
  7. python 显示图片matplotlib_Python OpenCV ——Matplotlib显示图片
  8. Flutter动画SizeTransition使用解析
  9. python3ubunton安装视频_ubuntu16.04安装python3的包报错
  10. docker中使用git_如何在 Docker 中使用 Docker
  11. 杭电------2097 Sky数(C语言写)
  12. Linux必学书籍!五本强烈推荐,你读过几本?
  13. 淘宝直通车如何打造爆款,直通车爆款秘籍
  14. php只取时间的下士_php取当时的年月日时分秒毫秒
  15. JMeter性能测试,入门到入土
  16. $().each()与$.each()的区别
  17. chrome cookies cookie 解密 写入(80+版本)
  18. UART串口通讯协议
  19. graphics.h图形库用法总结
  20. h5微信f分享链接给对方获取对方手机号_微信生日贺卡链接制作

热门文章

  1. 今天诞生了智能车竞赛华南赛区三项最好成绩
  2. 贝壳测试|新赛道、新电源
  3. 规则引擎 drools_为什么要用规则引擎?
  4. linux防火墙常用控制协议,linux防火墙配置及管理.doc
  5. python表示复数的语句是_在python中复数如何表示
  6. matlab 两列数据相乘,在EXCEL中,两列完全相同的数据,求和结果不一样??单元格两列相乘的公式...
  7. php 生成器 教程,PHP扩展生成器_PHP教程
  8. awk 脚本中使用正则表达式
  9. 切换不了摄像头 高拍仪_手机摄像头模组支架保护膜的变革之路
  10. 在红帽中安装oracle,在红帽企业Linux 5.4中安装Oracle Database 10g