你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

正在用ADC模拟看门狗,不知道如何对回调函数判断

[复制链接]
封刀岁月不为峥嵘 提问时间:2023-6-5 14:48 / 已解决

void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc)

对于这个函数,我使用了两个看门狗,发现看门狗2也会调用这个函数,明明已经有void HAL_ADC_LevelOutOfWindow2Callback(ADC_HandleTypeDef *hadc)函数

了,所以寻思加个判断。hadc->State==HAL_ADC_STATE_AWD1,这样貌似不行,网上也没找到,该怎么办

收藏 评论3 发布时间:2023-6-5 14:48

举报

3个回答
xmshao 最优答案 回答时间:2023-6-7 11:16:24
看了下手册,你说的L431的确只有1个ADC模块,3个看门狗。
不过,还是可以识别的。


不同看门狗涉及不同的中断请求标志位,
你根据看门狗中断标志位即可判断了。


所以你要是 早说型号 我就会这样回复你了。
xmshao 回答时间:2023-6-5 15:51:24
你们这帮人为何总是不告知具体芯片型号。


一般来讲,一个模块只能启用一个看门狗。


我们可以通过hadc->intance来判断是来自哪个ADC模块的看门狗事件.


比方我这里把ADC1和ADC2都开启了看门狗及中断。


void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc){
  if(hadc->Instance == ADC1)
    adc1_wdg_cnt++;
  else adc2_wdg_cnt++;
}
封刀岁月不为峥嵘 回答时间:2023-6-6 19:28:45

xmshao 发表于 2023-6-5 15:51
你们这帮人为何总是不告知具体芯片型号。</p>
<p>

谢谢大佬,我用的是

STM32L431RCT6。

这款芯片只有一个ADC,但是这个ADC下面给了三个看门狗事件,可以分别监控多个通道,

如果是按照你说的那样,判断标志是通过ADC来判断,那么三个看门狗应该是同一个ADC,所以还是无法判断是那个看门狗进入的回调函数

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版