汇集网友智慧,解决技术难题
使用 HC32F4 模拟看门狗 F4A0
赞0
评论
2026-01-26
点击图片添加到编辑器内容中
点击文件名将附件添加到文章中
提交
tyw
320个答案
天意无罪
288个答案
xch
247个答案
jjjyufan
211个答案
coody
204个答案
LcwSwust
172个答案
dffzh
156个答案
地瓜patch
148个答案
赞0
/**
* @brief AWD configuration.
* @param None
* @retval None
*/
static void AdcAwdConfig(void)
{
stc_adc_awd_config_t stcAwd;
//外部电源电压
stcAwd.u16WatchdogMode = ADC_AWD_MD;
stcAwd.u16LowThreshold = ADC_Ex_AWD_LOW_THRESHOLD_VAL;
stcAwd.u16HighThreshold = ADC_Ex_AWD_HIGH_THRESHOLD_VAL;
(void)ADC_AWD_Config(ADC_UNIT, AWD_0, ADC_AWD_CH_ExPower, &stcAwd);
ADC_AWD_Cmd(ADC_UNIT, AWD_0, ENABLE);
//外部电池电压
stcAwd.u16WatchdogMode = ADC_AWD_MD;
stcAwd.u16LowThreshold = ADC_BAT_AWD_LOW_THRESHOLD_VAL;
stcAwd.u16HighThreshold = ADC_BAT_AWD_HIGH_THRESHOLD_VAL;
(void)ADC_AWD_Config(ADC_UNIT, AWD_1, ADC_AWD_CH_Batter, &stcAwd);
ADC_AWD_Cmd(ADC_UNIT, AWD_1, ENABLE);
ADC_AWD_SetCombMode(ADC_UNIT,ADC_AWD_COMB_AND);
//
}
/**
* @brief AWD0 IRQ callback.
* @param None
* @retval None
*/
static void ADC1_Cmp0_IrqCallback(void)
{
ADC_AWD_ClearStatus(ADC_UNIT, ADC_AWD_FLAG_AWD0);
m_u32AdcIrqFlag |= ADC_AWD_FLAG_AWD0;
}
/**
* @brief AWD0 IRQ callback.
* @param None
* @retval None
*/
static void ADC1_Cmp1_IrqCallback(void)
{
ADC_AWD_ClearStatus(ADC_UNIT, ADC_AWD_FLAG_AWD1);
m_u32AdcIrqFlag |= ADC_AWD_FLAG_AWD1;
}
/**
* @brief ADC IRQ configuration.
* @param None
* @retval None
*/
static void AdcIrqConfig(void)
{
stc_irq_signin_config_t stcIrq;
stcIrq.enIntSrc = ADC_AWD_INT_SRC0;//
stcIrq.enIRQn = ADC_AWD_INT_IRQn;
stcIrq.pfnCallback = &ADC1_Cmp0_IrqCallback;
(void)INTC_IrqSignIn(&stcIrq);
NVIC_ClearPendingIRQ(stcIrq.enIRQn);
NVIC_SetPriority(stcIrq.enIRQn, ADC_AWD_INT_PRIO);
NVIC_EnableIRQ(stcIrq.enIRQn);
stcIrq.enIntSrc = ADC_AWD_INT_SRC1;//
stcIrq.enIRQn = ADC_AWD_INT_IRQn;
stcIrq.pfnCallback = &ADC1_Cmp1_IrqCallback;
(void)INTC_IrqSignIn(&stcIrq);
NVIC_ClearPendingIRQ(stcIrq.enIRQn);
NVIC_SetPriority(stcIrq.enIRQn, ADC_AWD_INT_PRIO);
NVIC_EnableIRQ(stcIrq.enIRQn);
ADC_AWD_IntCmd(ADC_UNIT, ADC_AWD_INT_AWD0, ENABLE);
ADC_AWD_IntCmd(ADC_UNIT, ADC_AWD_INT_AWD1, ENABLE);
// ADC_IntCmd(ADC_UNIT, ADC_INT_EOCA, ENABLE);
// ADC_AWD_IntCmd(ADC_UNIT, ADC_AWD_INT_ALL, ENABLE);
}
但是AWD无法进入中断
评论
2026-01-26
您需要登录后才可以回复 登录 | 注册