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