ADC的模擬看門狗用于檢查電壓是否越界。他又上下兩個邊界,可分別在寄存器ADC_HTR和ADC_LTR中設置。庫函數是使用ADC_AnalogWatchdogThresholdsConfig設置的,無論是常規通道還是注入通道,都非常簡單
當模擬看門狗檢測到電壓高于上限或者低于下限時將會產生看門狗中斷。捕獲這個中斷,可以做出一些應對措施。
數據手冊上特別之處的一個東西:模擬看門狗說使用的比較數據與ADC_CR2寄存器中設置的數據對齊方式無關。看門狗比較是在數據對齊之前完成的。先進行看門狗比較,再將數據放入ADC_DR數據寄存器。
在ST的庫中,只有簡單的三個與看門狗相關的函數:
void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog);
void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold,uint16_t LowThreshold);
void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel);
使用ADC_AnalogWatchdogThresholdsConfig設置觸發看門狗的上下限
使用ADC_AnalogWatchdogSingleChannelConfig配置要使用模擬看門狗的通道
配置完成后使用ADC_AnalogWatchdogCmd啟動模擬看門狗。
我寫的函數很簡單,就這么三行。將模擬看門狗加在ADC1的CH1上。代碼如下:
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_Channel_0);
ADC_AnalogWatchdogThresholdsConfig(ADC1,1500,0xFFF);
ADC_AnalogWatchdogCmd(ADC1,ADC_AnalogWatchdog_SingleRegEnable);
}
NVIC中初始化模擬看門狗:
void NVIC_Config(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置中斷優先級分組
NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
NVIC_Init(&NVIC_InitStructure);
}
捕獲看門狗中斷:
void ADC_IRQHandler(void)
{
ADC_ITConfig(ADC1,ADC_IT_AWD,DISABLE);
if(SET == ADC_GetFlagStatus(ADC1,ADC_FLAG_AWD))
{
ADC_ClearFlag(ADC1,ADC_FLAG_AWD);
ADC_ClearITPendingBit(ADC1,ADC_IT_AWD);
printf(“ADC AWD is happened.rn”);
}
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
}
當然,最后別忘了打開ADC的中斷:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
上一篇:如何通過STM32驅動nRF24L01發送數據
下一篇:基于LinkedInSTM32F4時鐘系統初始化設置
推薦閱讀最新更新時間:2025-05-24 02:06






設計資源 培訓 開發板 精華推薦
- NCP2809B帶輸出耦合電容的典型應用
- AZ431B精密5V/1A穩壓器典型應用
- 【訓練營】鴻蒙BigDog
- OP495GSZ 4.5V、低壓差運算放大器基準的典型應用
- 使用 Analog Devices 的 LTC1261IS8 的參考設計
- EVAL-AD7414/15EB,用于 AD7414 SMBus/I2C、10 位數字溫度傳感器的評估板
- 102110037,Wio Link 是一款基于 ESP8266 SoC 的開源 Wi-Fi 開發板,適用于物聯網應用
- 使用 Richtek Technology Corporation 的 RT9164 的參考設計
- 用于開/關控制應用的 AM2G-2415SH30Z 15V 2 瓦 DC-DC 轉換器的典型應用
- 具有大接地回路電壓的 LTC2862AIS8-1 RS485 鏈路的典型應用