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

大家有用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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版