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

大家有用stm32cube的HAL库做ADC的模拟看门狗吗

[复制链接]
feiante 提问时间:2015-9-21 16:12 /
本帖最后由 feiante 于 2015-9-21 16:28 编辑

今天打算试用下ADC的模拟看门狗的功能,使用的板子是stm32f051,模拟看门狗的设置如下:
  /**Configure the analog watchdog
    */
  AnalogWDGConfig.WatchdogMode = ADC_ANALOGWATCHDOG_SINGLE_REG;
  AnalogWDGConfig.Channel = ADC_CHANNEL_3;
  AnalogWDGConfig.ITMode = ENABLE;
  AnalogWDGConfig.HighThreshold = 3000;
  AnalogWDGConfig.LowThreshold = 1000;
  HAL_ADC_AnalogWDGConfig(&hadc, &AnalogWDGConfig);


其中断函数void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc)能够进入,
但是如何判断ADW的状态呢,比如超过了HighThreshold值:3000,ADW为1,就点亮一个灯,如果没有超过了,即ADW为0,就熄灭灯

我在中断服务程序是这样:
void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc)
{
        if (HAL_ADC_STATE_AWD1)
        {
                HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_SET);
        }
}

但是当没有超出范围时,就不能检测到。
收藏 评论4 发布时间:2015-9-21 16:12

举报

4个回答
废鱼 回答时间:2015-9-21 17:56:59
这样只能在超出范围加反转了。每次超出范围反转一下IO口。还有就是通过外部程序读取对应的标志位或者寄存器,判断当前是否溢出。
你好我好大家好! 回答时间:2015-9-21 18:03:21
问题好奇怪
feiante 回答时间:2015-9-22 08:32:11
本来我是想用读状态的函数,但是好像使用不对,不知道怎么用了,呵呵
废鱼 回答时间:2015-9-22 11:29:59
慢慢解决,先尝试读取寄存器。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版