現(xiàn)場(chǎng)條件:
1.AD采集,DMA傳輸;AD設(shè)置為單通道的持續(xù)模式,DMA設(shè)置為單次模式。AD模擬看門(mén)狗設(shè)置的上門(mén)檻小于A(yíng)D采集值,下門(mén)檻大于A(yíng)D采樣值,當(dāng)DMA單次結(jié)束后,即會(huì)發(fā)生AD看門(mén)狗中斷和溢出中斷
void ADC1_IRQHandler(void)
{
if(ADC_GetITStatus(ADC1, ADC_IT_OVR) != RESET)
{
//while(1);
__NOP(); //1處
}
if(ADC_GetITStatus(ADC1, ADC_IT_AWD) != RESET)
{
//while(1);
__NOP(); //2處
}
}
此時(shí),沒(méi)有對(duì)相應(yīng)位的中斷標(biāo)志Pendbit位的清除,所以會(huì)一直會(huì)進(jìn)入中斷。
現(xiàn)場(chǎng)現(xiàn)象:1,AD模擬看門(mén)狗會(huì)觸發(fā)中斷。2,在2處,和1處打上斷點(diǎn)。進(jìn)入斷點(diǎn)的位置是,先到2處,再到1處,然后再到2處,再到1處,依次循環(huán)。
總結(jié):
1.模擬看門(mén)狗觸發(fā)時(shí)不用非要設(shè)置上門(mén)檻大于下門(mén)檻,它只判斷是否AD采樣值大于上門(mén)檻,和小于下門(mén)檻,進(jìn)入中斷后stm32沒(méi)有提供給我們到底是大于上門(mén)檻中斷還是小于下門(mén)檻造成的中斷,只能我們自己判斷。
2.看門(mén)狗中斷的優(yōu)先級(jí)大于溢出中斷的優(yōu)先級(jí),因?yàn)樗葓?zhí)行2處的內(nèi)容,后進(jìn)行1處的內(nèi)容