ADC的模拟看门狗
来源:互联网 发布:松下交换机编程 编辑:程序博客网 时间:2024/04/29 22:57
ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LTR中设置。库函数是使用ADC_AnalogWatchdogThresholdsConfig设置的,无论是常规通道还是注入通道,都非常简单。
当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断。捕获这个中断,可以做出一些应对措施。
数据手册上特别之处的一个东西:模拟看门狗说使用的比较数据与ADC_CR2寄存器中设置的数据对齐方式无关。看门狗比较是在数据对齐之前完成的。先进行看门狗比较,再将数据放入ADC_DR数据寄存器。
在ST的库中,只有简单的三个与看门狗相关的函数:
void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog);void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold,uint16_t LowThreshold);void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel);
使用ADC_AnalogWatchdogThresholdsConfig设置触发看门狗的上下限
使用ADC_AnalogWatchdogSingleChannelConfig配置要使用模拟看门狗的通道
配置完成后使用ADC_AnalogWatchdogCmd启动模拟看门狗。
我写的函数很简单,就这么三行。将模拟看门狗加在ADC1的CH1上。代码如下:
void ADC_WatchdogConfig(void){ ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_Channel_0); ADC_AnalogWatchdogThresholdsConfig(ADC1,1500,0xFFF); ADC_AnalogWatchdogCmd(ADC1,ADC_AnalogWatchdog_SingleRegEnable);}
NVIC中初始化模拟看门狗:
void NVIC_Config(void){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组 NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; NVIC_Init(&NVIC_InitStructure);}
捕获看门狗中断:
void ADC_IRQHandler(void){ ADC_ITConfig(ADC1,ADC_IT_AWD,DISABLE); if(SET == ADC_GetFlagStatus(ADC1,ADC_FLAG_AWD)) { ADC_ClearFlag(ADC1,ADC_FLAG_AWD); ADC_ClearITPendingBit(ADC1,ADC_IT_AWD); printf("ADC AWD is happened.\r\n"); } ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);}
当然,最后别忘了打开ADC的中断:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
0 0
- ADC的模拟看门狗
- STM32L151 的ADC的模拟看门狗中断和溢出中断
- 模拟 模拟/ 数字转换(ADC)
- stm8的独立看门狗与窗口看门狗
- 独立看门狗和窗口看门狗的区别
- STM32F4 ADC1 模拟看门狗【库函数操作】
- STM32F4 ADC1 模拟看门狗【库函数操作】
- 看门狗watchdog的理解
- 看门狗的介绍
- 单片机看门狗的作用
- F2812的看门狗总结
- 针对单片机的看门狗
- Redis2.6 的看门狗
- STM32的看门狗配置
- AT89S52的看门狗定时器
- s3c2440的看门狗
- STM32的看门狗配置
- Android看门狗的实现
- 信号处理国际会议排名
- css div垂直居中
- jquery easyui-datagrid动态改变标题
- 大数据_Kafka_Kafka的控制台 生产者 / 消费者
- 蜂鸣器常见错误电路分析
- ADC的模拟看门狗
- iOS基础之Documents路径每次Run都在改变
- ios AFNetworking 圆形进度条下载,显示百分比
- JSON与聚合数据不解之缘<二>
- 根据字符串的第一个'_',从数据库查询与其相关的其他字段
- [libevent源码分析] event_base_dispatch
- 常见的响应式布局(一)
- 块设备的测试
- 执行HDevelop项目