CubeMXでIWDG(ウォッチドッグタイマ)を有効にした場合、自動生成される初期化コードでIWDGがスタートしてしまうため、デバッガで実行を止めるとIWDGによってリセットがかかってしまう。これを回避するためには、デバッグ時には下記のようなマクロをmain.cの USER CODE BEGIN PV から USER CODE END PV の間で定義すればよい。
/* USER CODE BEGIN PV */ // ウォッチドッグタイマを無効にするためのトリック #define HAL_IWDG_Init(a) (HAL_OK) /* USER CODE END PV */