对于这个函数,我使用了两个看门狗,发现看门狗2也会调用这个函数,明明已经有 了,所以寻思加个判断。 |
看了下手册,你说的L431的确只有1个ADC模块,3个看门狗。 不过,还是可以识别的。 不同看门狗涉及不同的中断请求标志位, 你根据看门狗中断标志位即可判断了。 所以你要是 早说型号 我就会这样回复你了。
你们这帮人为何总是不告知具体芯片型号。 一般来讲,一个模块只能启用一个看门狗。 我们可以通过hadc->intance来判断是来自哪个ADC模块的看门狗事件. 比方我这里把ADC1和ADC2都开启了看门狗及中断。 void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc){ if(hadc->Instance == ADC1) adc1_wdg_cnt++; else adc2_wdg_cnt++; }
你们这帮人为何总是不告知具体芯片型号。
谢谢大佬,我用的是 STM32L431RCT6。 这款芯片只有一个ADC,但是这个ADC下面给了三个看门狗事件,可以分别监控多个通道, 如果是按照你说的那样,判断标志是通过ADC来判断,那么三个看门狗应该是同一个ADC,所以还是无法判断是那个看门狗进入的回调函数