標志位和中斷位的區別:USART_ClearFlag和USART_ClearITPendingBit


參考地址:https://blog.csdn.net/kuzuiu001/article/details/90701219

在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)
這是定義的標志位,二者對比可以發現有的標志位不能產生中斷
標志位在程序中可以作為判定條件,支持程序的運行;中斷則是跳轉到中斷函數執行。兩個函數實現的功能是一樣的,在中斷程序中可以用兩個中的任一個。區分兩個函數是為了更清晰的顯示函數庫的嚴謹。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM