历史上的今天
今天是:2024年09月08日(星期日)
2021年09月08日 | STM32CubeMX配置ADC模拟看门狗实现掉电保存
2021-09-08 来源:eefocus
实验目的:
通过STM32CubeMX进行简单配置生成HAL库实现ADC模拟看门狗,以达到单片机掉电保存Flash。
一、STM32CubeMX配置如下:

其中两个边界电压分别配置了3880和1509,当超越这个边界就会出发ADC中断,再ADC中断中保存flash即可。所以我们还需要打开ADC中断:
二、生成的HAL库源码如下:
/** Configure Analog WatchDog 1
*/
AnalogWDGConfig.WatchdogNumber = ADC_ANALOGWATCHDOG_1;
AnalogWDGConfig.WatchdogMode = ADC_ANALOGWATCHDOG_SINGLE_REG;
AnalogWDGConfig.Channel = ADC_CHANNEL_9;
AnalogWDGConfig.ITMode = ENABLE;
AnalogWDGConfig.HighThreshold = 3880;
AnalogWDGConfig.LowThreshold = 1509;
if (HAL_ADC_AnalogWDGConfig(&hadc1, &AnalogWDGConfig) != HAL_OK)
{
Error_Handler();
}
/** Configure Analog WatchDog 2
*/
AnalogWDGConfig.WatchdogMode = ADC_ANALOGWATCHDOG_SINGLE_REG;
if (HAL_ADC_AnalogWDGConfig(&hadc1, &AnalogWDGConfig) != HAL_OK)
{
Error_Handler();
}
三、在ADC中段中实现你想要的功能即可
/**
* @brief This function handles ADC1 interrupt.
*/
void ADC1_IRQHandler(void)
{
/* USER CODE BEGIN ADC1_IRQn 0 */
/* USER CODE END ADC1_IRQn 0 */
HAL_ADC_IRQHandler(&hadc1);
/* USER CODE BEGIN ADC1_IRQn 1 */
在此处添加自己想实现的功能
/* USER CODE END ADC1_IRQn 1 */
}
完美,收工!
史海拾趣
|
由于负责实验室STM32平台的建立,我觉得有必要为它加入操作系统,但一直没找到可下载的免费资源(可能是我找的不够细吧),实验室以前使用LPC2200系列芯片时使用的就是UCOS_II系统,所以我自己手动做了一次移植,这个版本已经得到简单的验证。 我 ...… 查看全部问答> |
|
2.3公司工艺与管理模式 在与晶体相关的产业中,无论是生产企业还是用户,都应该意识到一点:频控器件需要一个相对比较长的时间来进行相关的各种测试、考核和老化,以确保产品在实际应用中的效果。在TEMEX公司,除了直接面对生产线的员工,一部分人 ...… 查看全部问答> |
|
把DLL通过platform.bib文件打包进NK,怎么老是报Unknown memory type found 'xxx.DLL'这样的错误?为什么?以前都不 把DLL通过platform.bib文件打包进NK,怎么老是报Unknown memory type found \'xxx.DLL\'这样的错误?为什么?以前都不会这样! … 查看全部问答> |
|
请问:我在网上下载了个读取串口的程序 编译执行时提示 Cannot open include file: \'Setupapi.h\': No such file or directory 我想是因为没有\'Setupapi.h\' 这个文件 这应该是个库文件,请问怎样添加这个啊 谢谢… 查看全部问答> |
|
用Xilinx ISE (13.4) Project Navigator,创建一个新的工程时遇到以下一个问题,希望能得到大家的帮助! 创建新工程的第一步(截图“问题1_1”)没有遇到问题; ...… 查看全部问答> |




