STM32F407使用168M时钟IWDG不能复位???

2019-07-20 06:25发布

各位好:
我在使用STM32F407 IWDG独立看门狗的时候,发现如果用外部晶振HSE,然后锁相环PLL到168M做为系统时钟,则复位不了。
使用默认的HSI作为时钟,则可以复位。我在最下面加了红 {MOD}的就能复位,反之用之前的配置就不能复位。why? 系统时钟太快,复位信号太短?
HAL_RCC_DeInit();
void RCC_INTI2(void)
{
          RCC_OscInitTypeDef RCC_OscInitStruct;
          RCC_ClkInitTypeDef RCC_ClkInitStruct;
          HAL_RCC_DeInit();
            /**Configure the main internal regulator output voltage
            */
          __HAL_RCC_PWR_CLK_ENABLE();

          __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

            /**Initializes the CPU, AHB and APB busses clocks
            */
          RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE;
          //RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI;
          RCC_OscInitStruct.HSEState = RCC_HSE_ON;
          RCC_OscInitStruct.LSIState = RCC_LSI_ON;
          RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
          RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
          RCC_OscInitStruct.PLL.PLLM = 8;
          RCC_OscInitStruct.PLL.PLLN = 336;
          RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
          RCC_OscInitStruct.PLL.PLLQ = 7;
          if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
          {
            Error_Handler();
          }
         // rcctest=HAL_RCC_OscConfig(&RCC_OscInitStruct);

            /**Initializes the CPU, AHB and APB busses clocks
            */
          RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                                      |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
          RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
          RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
          RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
          RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

          if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
          {
            Error_Handler();
          }

            /**Configure the Systick interrupt time
            */
          HAL_RCC_DeInit();
          //HAL_SYSTICK_Config(336000);
          HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

            /**Configure the Systick
            */
          HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

          /* SysTick_IRQn interrupt configuration */
          HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
xuejianhua1986
1楼-- · 2019-07-20 08:22
求助啊,求助啊,help!
xuejianhua1986
2楼-- · 2019-07-20 09:45
把板子上的10K电阻,104电容都拆了也不行,也没插J-link
xuejianhua1986
3楼-- · 2019-07-20 12:02
 精彩回答 2  元偷偷看……
xuejianhua1986
4楼-- · 2019-07-20 12:25
刚才试了窗口看门狗WWDG,也是一样,正常喂狗没问题,不喂就死机复位不了。
远方
5楼-- · 2019-07-20 17:18
 精彩回答 2  元偷偷看……
xuejianhua1986
6楼-- · 2019-07-20 21:24
 精彩回答 2  元偷偷看……

一周热门 更多>