? ? ? ? 现有工程是通过stm32CubeMX生成,并且新增很多逻辑。当前需求是需要增加看门狗功能,如果还是用stm32CubeMX生成,还需要将之前的逻辑再移植一遍,很麻烦。
? ? ? ? ?1. 先新建一个stm32CubeMX工程,然后单独配置IWDG功能,配置教程如下:IWDG使用
? ? ? ? ?2. 然后打开keil功能,编译。
? ? ? ? ?3. 将keil工程中IWDG的部分移植到现有工程中!!!
? ? ? ? ?1)将主函数中关于IWDG的代码加入现有工程。
IWDG_HandleTypeDef hiwdg1;
static void MX_IWDG1_Init(void);
MX_IWDG1_Init();
static void MX_IWDG1_Init(void)
{
hiwdg1.Instance = IWDG1;
hiwdg1.Init.Prescaler = IWDG_PRESCALER_64;
hiwdg1.Init.Window = 4095;
hiwdg1.Init.Reload = 500;
if (HAL_IWDG_Init(&hiwdg1) != HAL_OK)
{
Error_Handler();
}
}
? ? ? ? ?2)将IWDG工程中的Drivers复制到原工程的IWDG中,跳过重复的文件。
? ? ? ? ?3)点击File Extension按钮,然后再Drivers文件夹中添加stm32h7xx_hal_iwdg.c文件
?? ? ? ? ?4)找到stm32h7xx_hal_conf.h文件(Core\Inc\stm32h7xx_hal_conf.h),将HAL_IWDG_MODULE_ENABLED的注释移除。
#define HAL_IWDG_MODULE_ENABLED
?? ? ? ? ?5)在主函数中,定时喂狗。
HAL_IWDG_Refresh(&hiwdg1);
?? ? ? ? ?6)最后编译通过。
|