标志位和中断位的区别:USART_ClearFlag和USART_ClearITPendingBit
在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相关推荐
- TCP标志位 FIN和RST的区别
大家都知道TCP释放连接需要四次挥手, 主动释放端会发送FIN包,并且因为TCP是双工的, 关闭一个方向上的数据流,从而TCP连接处于半关闭状态,这也是为什么需要"四次"挥手的原因 ...
- Python 正则表达式学习----flags 编译标志位
Python 正则表达式学习--flags 编译标志位 关于正则表达式更多的内容,推荐https://blog.csdn.net/longerzone/article/details/24303161 ...
- 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 ...
- TCP协议中的PSH和URG标志位
TCP段格式 源端口 数据发送方的端口号,2个字节 目的端口 数据接受方的端口,2个字节 序号 报文段序号,数据报文中第一个字节的序号.4个字节,共2的32次方个序列号. 确认序号 也是4个字节,是期 ...
- 汇编语言中常见的标志位: CF, PF, AF, ZF, SF,TF,IF,DF, OF
一.运算结构标志位 1.CF(进位标志位):主要用来反映运算是否产生进位或借位,产生进位或借位则CF=1,否则CF=0. 2.PF(奇偶标志位):用于反映运算结果中"1"的个数的奇 ...
- 汇编语言中常用指令对标志位寄存器的影响
参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...
- DOSBox debug中查看标志位
debug中的标志位显示顺序 OF DF IF SF ZF AF PF CF OF 标志位(溢出) OF = 1, 显示为OV OF = 0, 显示为NV DF 标志位(方向) DF = 0, ...
- ARM中CPSR的标志位中的C和V
进位标志和溢出标志 这次大概总结一下进位标志(Carry Flag, CF)和溢出标志(Overflow Flag, OF)的含义和理解方式 首先明确一点基本认识,处理器本身并不在意也不知道参与算术运 ...
- 【超详总结/理解:正则表达式】特点/元字符/正则表达式中的标志位-flag/RegExp/重复操作与后向引用/匹配模式/表达邮箱/正则表达式对象的方法/利用正则表达式限制网页表单里的文本框输入内容
文章目录 正则表达式: 正则表达式的用途 正则表达式的组成-元字符 正则表达式的特点 正则表达式中的标志位-flag JavaScript中的正则表达式解析 RegExp 定义 RegExp RegE ...
最新文章
- Contextualization
- Nand分区及nand erase简解
- html链接是什么意思,html中url什么意思?怎么用?
- addEventListener的click和onclick的区别
- chdir函数_PHP chdir()函数与示例
- 正则表达式匹配多个字符串中的一个
- python 显示图片matplotlib_Python OpenCV ——Matplotlib显示图片
- Flutter动画SizeTransition使用解析
- python3ubunton安装视频_ubuntu16.04安装python3的包报错
- docker中使用git_如何在 Docker 中使用 Docker
- 杭电------2097 Sky数(C语言写)
- Linux必学书籍!五本强烈推荐,你读过几本?
- 淘宝直通车如何打造爆款,直通车爆款秘籍
- php只取时间的下士_php取当时的年月日时分秒毫秒
- JMeter性能测试,入门到入土
- $().each()与$.each()的区别
- chrome cookies cookie 解密 写入(80+版本)
- UART串口通讯协议
- graphics.h图形库用法总结
- h5微信f分享链接给对方获取对方手机号_微信生日贺卡链接制作
热门文章
- 今天诞生了智能车竞赛华南赛区三项最好成绩
- 贝壳测试|新赛道、新电源
- 规则引擎 drools_为什么要用规则引擎?
- linux防火墙常用控制协议,linux防火墙配置及管理.doc
- python表示复数的语句是_在python中复数如何表示
- matlab 两列数据相乘,在EXCEL中,两列完全相同的数据,求和结果不一样??单元格两列相乘的公式...
- php 生成器 教程,PHP扩展生成器_PHP教程
- awk 脚本中使用正则表达式
- 切换不了摄像头 高拍仪_手机摄像头模组支架保护膜的变革之路
- 在红帽中安装oracle,在红帽企业Linux 5.4中安装Oracle Database 10g