STM32
登录
直播中
xymbmcu
12年用户
1040经验值
擅长:可编程逻辑
私信
关注
[问答]
ADC是如何模拟看门狗中断开关的
开启该帖子的消息推送
adc
看门狗
中断
ADC是如何模拟看门狗中断开关的?怎样去编写模拟看门狗的配置函数?
回帖
(3)
王桂香
2021-9-23 14:13:43
根据st官方手册提供描述不难看出,ADC模拟看门狗其实就是用户可以设置一个AD值上下限值,然后打开此模拟看门狗中断开关,那么就会在检测到当IO输入转换AD值小于下限值或大于上限值时进入相应的中断函数。大致就是这么一个功能实现过程。
根据表63 可以看出,模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测。
那么明白了以上这些基础规则,那么我就要根据官方提供的库文件及里面的使用说明来配置相应函数来使用模拟看门狗。
打开此文件后下一步:
看!在这个官方提供的.c文件里面已经有介绍关于模拟看门狗使用的详细介绍的,只要理解了英文描述的意义,结合之前看数据手册关于ADC模拟看门狗的描述就会很快的完成模拟看门狗的配置程序。
下面即是完成的模拟看门狗配置函数:
最后还不要忘记加入打开看门狗中断的函数:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
完整的配置过程如下:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3; //先占优先级1级
NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
}
/*
模拟看门狗配置函数
单通道:7
*/
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_AnalogWatchdog_Channel_7);
ADC_AnalogWatchdogThresholdsConfig(ADC1,4050,0);
ADC_AnalogWatchdogCmd(ADC1,ENABLE);
ADC_AnalogWatchdogSingleChannelCmd(ADC1,ENABLE);
}
以上就是对ADC模拟看门狗的使用做了一个小结,当然只是用了其中一部分功能,如有纰漏,请您指出,不胜感谢。
通过此次模拟看门狗的使用,我更加明白要利用官方资源的重要性,解铃还须系铃人,这句话非常适合做技术的人,当遇见问题时,无从下手或不知怎么样下手才会效率高的解决问题时,这时就应该想到生产厂家才是解决问题的源头关键,那里有相当丰富的使用说明文档及工具资源,这样就避免了在网络上找不到自己用到的相关应用时而苦恼无助的情况,谨以此心得与读者共勉!
根据st官方手册提供描述不难看出,ADC模拟看门狗其实就是用户可以设置一个AD值上下限值,然后打开此模拟看门狗中断开关,那么就会在检测到当IO输入转换AD值小于下限值或大于上限值时进入相应的中断函数。大致就是这么一个功能实现过程。
根据表63 可以看出,模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测。
那么明白了以上这些基础规则,那么我就要根据官方提供的库文件及里面的使用说明来配置相应函数来使用模拟看门狗。
打开此文件后下一步:
看!在这个官方提供的.c文件里面已经有介绍关于模拟看门狗使用的详细介绍的,只要理解了英文描述的意义,结合之前看数据手册关于ADC模拟看门狗的描述就会很快的完成模拟看门狗的配置程序。
下面即是完成的模拟看门狗配置函数:
最后还不要忘记加入打开看门狗中断的函数:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
完整的配置过程如下:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3; //先占优先级1级
NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
}
/*
模拟看门狗配置函数
单通道:7
*/
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_AnalogWatchdog_Channel_7);
ADC_AnalogWatchdogThresholdsConfig(ADC1,4050,0);
ADC_AnalogWatchdogCmd(ADC1,ENABLE);
ADC_AnalogWatchdogSingleChannelCmd(ADC1,ENABLE);
}
以上就是对ADC模拟看门狗的使用做了一个小结,当然只是用了其中一部分功能,如有纰漏,请您指出,不胜感谢。
通过此次模拟看门狗的使用,我更加明白要利用官方资源的重要性,解铃还须系铃人,这句话非常适合做技术的人,当遇见问题时,无从下手或不知怎么样下手才会效率高的解决问题时,这时就应该想到生产厂家才是解决问题的源头关键,那里有相当丰富的使用说明文档及工具资源,这样就避免了在网络上找不到自己用到的相关应用时而苦恼无助的情况,谨以此心得与读者共勉!
举报
高欢
2021-9-23 14:13:43
根据st官方手册提供描述不难看出,ADC模拟看门狗其实就是用户可以设置一个AD值上下限值,然后打开此模拟看门狗中断开关,那么就会在检测到当IO输入转换AD值小于下限值或大于上限值时进入相应的中断函数。大致就是这么一个功能实现过程。
根据表63 可以看出,模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测。
那么明白了以上这些基础规则,那么我就要根据官方提供的库文件及里面的使用说明来配置相应函数来使用模拟看门狗。
打开此文件后下一步:
看!在这个官方提供的.c文件里面已经有介绍关于模拟看门狗使用的详细介绍的,只要理解了英文描述的意义,结合之前看数据手册关于ADC模拟看门狗的描述就会很快的完成模拟看门狗的配置程序。
下面即是完成的模拟看门狗配置函数:
最后还不要忘记加入打开看门狗中断的函数:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
完整的配置过程如下:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3; //先占优先级1级
NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
}
/*
模拟看门狗配置函数
单通道:7
*/
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_AnalogWatchdog_Channel_7);
ADC_AnalogWatchdogThresholdsConfig(ADC1,4050,0);
ADC_AnalogWatchdogCmd(ADC1,ENABLE);
ADC_AnalogWatchdogSingleChannelCmd(ADC1,ENABLE);
}
以上就是对ADC模拟看门狗的使用做了一个小结,当然只是用了其中一部分功能,如有纰漏,请您指出,不胜感谢。
通过此次模拟看门狗的使用,我更加明白要利用官方资源的重要性,解铃还须系铃人,这句话非常适合做技术的人,当遇见问题时,无从下手或不知怎么样下手才会效率高的解决问题时,这时就应该想到生产厂家才是解决问题的源头关键,那里有相当丰富的使用说明文档及工具资源,这样就避免了在网络上找不到自己用到的相关应用时而苦恼无助的情况,谨以此心得与读者共勉!
根据st官方手册提供描述不难看出,ADC模拟看门狗其实就是用户可以设置一个AD值上下限值,然后打开此模拟看门狗中断开关,那么就会在检测到当IO输入转换AD值小于下限值或大于上限值时进入相应的中断函数。大致就是这么一个功能实现过程。
根据表63 可以看出,模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测。
那么明白了以上这些基础规则,那么我就要根据官方提供的库文件及里面的使用说明来配置相应函数来使用模拟看门狗。
打开此文件后下一步:
看!在这个官方提供的.c文件里面已经有介绍关于模拟看门狗使用的详细介绍的,只要理解了英文描述的意义,结合之前看数据手册关于ADC模拟看门狗的描述就会很快的完成模拟看门狗的配置程序。
下面即是完成的模拟看门狗配置函数:
最后还不要忘记加入打开看门狗中断的函数:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
完整的配置过程如下:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3; //先占优先级1级
NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
}
/*
模拟看门狗配置函数
单通道:7
*/
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_AnalogWatchdog_Channel_7);
ADC_AnalogWatchdogThresholdsConfig(ADC1,4050,0);
ADC_AnalogWatchdogCmd(ADC1,ENABLE);
ADC_AnalogWatchdogSingleChannelCmd(ADC1,ENABLE);
}
以上就是对ADC模拟看门狗的使用做了一个小结,当然只是用了其中一部分功能,如有纰漏,请您指出,不胜感谢。
通过此次模拟看门狗的使用,我更加明白要利用官方资源的重要性,解铃还须系铃人,这句话非常适合做技术的人,当遇见问题时,无从下手或不知怎么样下手才会效率高的解决问题时,这时就应该想到生产厂家才是解决问题的源头关键,那里有相当丰富的使用说明文档及工具资源,这样就避免了在网络上找不到自己用到的相关应用时而苦恼无助的情况,谨以此心得与读者共勉!
举报
张琨
2021-9-23 14:13:43
根据st官方手册提供描述不难看出,ADC模拟看门狗其实就是用户可以设置一个AD值上下限值,然后打开此模拟看门狗中断开关,那么就会在检测到当IO输入转换AD值小于下限值或大于上限值时进入相应的中断函数。大致就是这么一个功能实现过程。
根据表63 可以看出,模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测。
那么明白了以上这些基础规则,那么我就要根据官方提供的库文件及里面的使用说明来配置相应函数来使用模拟看门狗。
打开此文件后下一步:
看!在这个官方提供的.c文件里面已经有介绍关于模拟看门狗使用的详细介绍的,只要理解了英文描述的意义,结合之前看数据手册关于ADC模拟看门狗的描述就会很快的完成模拟看门狗的配置程序。
下面即是完成的模拟看门狗配置函数:
最后还不要忘记加入打开看门狗中断的函数:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
完整的配置过程如下:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3; //先占优先级1级
NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
}
/*
模拟看门狗配置函数
单通道:7
*/
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_AnalogWatchdog_Channel_7);
ADC_AnalogWatchdogThresholdsConfig(ADC1,4050,0);
ADC_AnalogWatchdogCmd(ADC1,ENABLE);
ADC_AnalogWatchdogSingleChannelCmd(ADC1,ENABLE);
}
以上就是对ADC模拟看门狗的使用做了一个小结,当然只是用了其中一部分功能,如有纰漏,请您指出,不胜感谢。
通过此次模拟看门狗的使用,我更加明白要利用官方资源的重要性,解铃还须系铃人,这句话非常适合做技术的人,当遇见问题时,无从下手或不知怎么样下手才会效率高的解决问题时,这时就应该想到生产厂家才是解决问题的源头关键,那里有相当丰富的使用说明文档及工具资源,这样就避免了在网络上找不到自己用到的相关应用时而苦恼无助的情况,谨以此心得与读者共勉!
根据st官方手册提供描述不难看出,ADC模拟看门狗其实就是用户可以设置一个AD值上下限值,然后打开此模拟看门狗中断开关,那么就会在检测到当IO输入转换AD值小于下限值或大于上限值时进入相应的中断函数。大致就是这么一个功能实现过程。
根据表63 可以看出,模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测。
那么明白了以上这些基础规则,那么我就要根据官方提供的库文件及里面的使用说明来配置相应函数来使用模拟看门狗。
打开此文件后下一步:
看!在这个官方提供的.c文件里面已经有介绍关于模拟看门狗使用的详细介绍的,只要理解了英文描述的意义,结合之前看数据手册关于ADC模拟看门狗的描述就会很快的完成模拟看门狗的配置程序。
下面即是完成的模拟看门狗配置函数:
最后还不要忘记加入打开看门狗中断的函数:
ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);
完整的配置过程如下:
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3; //先占优先级1级
NVIC_InitStructure.NVIC_IRQChannel = ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
}
/*
模拟看门狗配置函数
单通道:7
*/
void ADC_WatchdogConfig(void)
{
ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_AnalogWatchdog_Channel_7);
ADC_AnalogWatchdogThresholdsConfig(ADC1,4050,0);
ADC_AnalogWatchdogCmd(ADC1,ENABLE);
ADC_AnalogWatchdogSingleChannelCmd(ADC1,ENABLE);
}
以上就是对ADC模拟看门狗的使用做了一个小结,当然只是用了其中一部分功能,如有纰漏,请您指出,不胜感谢。
通过此次模拟看门狗的使用,我更加明白要利用官方资源的重要性,解铃还须系铃人,这句话非常适合做技术的人,当遇见问题时,无从下手或不知怎么样下手才会效率高的解决问题时,这时就应该想到生产厂家才是解决问题的源头关键,那里有相当丰富的使用说明文档及工具资源,这样就避免了在网络上找不到自己用到的相关应用时而苦恼无助的情况,谨以此心得与读者共勉!
举报
更多回帖
rotate(-90deg);
回复
相关问答
adc
看门狗
中断
STM32F103RBT6的
ADC
模拟
看门狗
中断
的报警红灯亮起
2018-09-21
4058
一文读懂什么是
模拟
看门狗
2021-08-16
2066
使用
模拟
看门狗
时,只要加上滤波就不产生
中断
事件,为什么?
2024-04-17
274
模拟
看门狗
到底有什么用处呢
2022-01-17
1108
怎样去
模拟
STM32
看门狗
中断
呢
2021-09-14
1350
HAL库是如何实现
ADC
从而去
模拟
看门狗
的
2021-08-20
1951
STM32芯片的
模拟
看门狗
是怎么回事呢
2021-09-18
1813
如何去使用
看门狗
?喂
看门狗
与不喂
看门狗
的区别是什么?
2021-07-08
1381
哪位大神可以详细介绍STM8
模拟
看门狗
的安全区域?
2020-11-06
1458
stm32独立
看门狗
和窗口
看门狗
有哪些不同之处
2021-08-11
1481
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分