Subversion Repositories DashDisplay

Rev

Rev 50 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 50 Rev 61
Line 218... Line 218...
218
static void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
218
static void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
219
                              uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
219
                              uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
220
static void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
220
static void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
221
static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma);
221
static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma);
222
static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma);
222
static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma);
-
 
223
static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma);
-
 
224
static void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma);
223
static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma);
225
static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma);
224
static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma);
226
static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma);
225
static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim,
227
static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim,
226
                                                  TIM_SlaveConfigTypeDef *sSlaveConfig);
228
                                                  TIM_SlaveConfigTypeDef *sSlaveConfig);
227
/**
229
/**
Line 498... Line 500...
498
  */
500
  */
499
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
501
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
500
{
502
{
501
  /* Check the parameters */
503
  /* Check the parameters */
502
  assert_param(IS_TIM_INSTANCE(htim->Instance));
504
  assert_param(IS_TIM_INSTANCE(htim->Instance));
503
 
505
 
504
  /* Disable the TIM Update interrupt */
506
  /* Disable the TIM Update interrupt */
505
  __HAL_TIM_DISABLE_IT(htim, TIM_IT_UPDATE);
507
  __HAL_TIM_DISABLE_IT(htim, TIM_IT_UPDATE);
506
 
508
 
507
  /* Disable the Peripheral */
509
  /* Disable the Peripheral */
508
  __HAL_TIM_DISABLE(htim);
510
  __HAL_TIM_DISABLE(htim);
Line 555... Line 557...
555
 
557
 
556
  /* Set the DMA error callback */
558
  /* Set the DMA error callback */
557
  htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ;
559
  htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ;
558
 
560
 
559
  /* Enable the DMA channel */
561
  /* Enable the DMA channel */
560
  if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)pData, (uint32_t)&htim->Instance->ARR, Length) != HAL_OK)
562
  if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)pData, (uint32_t)&htim->Instance->ARR,
-
 
563
                     Length) != HAL_OK)
561
  {
564
  {
-
 
565
    /* Return error status */
562
    return HAL_ERROR;
566
    return HAL_ERROR;
563
  }
567
  }
564
 
568
 
565
  /* Enable the TIM Update DMA request */
569
  /* Enable the TIM Update DMA request */
566
  __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_UPDATE);
570
  __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_UPDATE);
Line 1041... Line 1045...
1041
 
1045
 
1042
      /* Set the DMA error callback */
1046
      /* Set the DMA error callback */
1043
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
1047
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
1044
 
1048
 
1045
      /* Enable the DMA channel */
1049
      /* Enable the DMA channel */
1046
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, Length) != HAL_OK)
1050
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1,
-
 
1051
                         Length) != HAL_OK)
1047
      {
1052
      {
-
 
1053
        /* Return error status */
1048
        return HAL_ERROR;
1054
        return HAL_ERROR;
1049
      }
1055
      }
1050
 
1056
 
1051
      /* Enable the TIM Capture/Compare 1 DMA request */
1057
      /* Enable the TIM Capture/Compare 1 DMA request */
1052
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
1058
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
Line 1061... Line 1067...
1061
 
1067
 
1062
      /* Set the DMA error callback */
1068
      /* Set the DMA error callback */
1063
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
1069
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
1064
 
1070
 
1065
      /* Enable the DMA channel */
1071
      /* Enable the DMA channel */
1066
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, Length) != HAL_OK)
1072
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2,
-
 
1073
                         Length) != HAL_OK)
1067
      {
1074
      {
-
 
1075
        /* Return error status */
1068
        return HAL_ERROR;
1076
        return HAL_ERROR;
1069
      }
1077
      }
1070
 
1078
 
1071
      /* Enable the TIM Capture/Compare 2 DMA request */
1079
      /* Enable the TIM Capture/Compare 2 DMA request */
1072
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1080
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
Line 1081... Line 1089...
1081
 
1089
 
1082
      /* Set the DMA error callback */
1090
      /* Set the DMA error callback */
1083
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
1091
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
1084
 
1092
 
1085
      /* Enable the DMA channel */
1093
      /* Enable the DMA channel */
1086
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, Length) != HAL_OK)
1094
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3,
-
 
1095
                         Length) != HAL_OK)
1087
      {
1096
      {
-
 
1097
        /* Return error status */
1088
        return HAL_ERROR;
1098
        return HAL_ERROR;
1089
      }
1099
      }
1090
      /* Enable the TIM Capture/Compare 3 DMA request */
1100
      /* Enable the TIM Capture/Compare 3 DMA request */
1091
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1101
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1092
      break;
1102
      break;
Line 1100... Line 1110...
1100
 
1110
 
1101
      /* Set the DMA error callback */
1111
      /* Set the DMA error callback */
1102
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
1112
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
1103
 
1113
 
1104
      /* Enable the DMA channel */
1114
      /* Enable the DMA channel */
1105
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, Length) != HAL_OK)
1115
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4,
-
 
1116
                         Length) != HAL_OK)
1106
      {
1117
      {
-
 
1118
        /* Return error status */
1107
        return HAL_ERROR;
1119
        return HAL_ERROR;
1108
      }
1120
      }
1109
      /* Enable the TIM Capture/Compare 4 DMA request */
1121
      /* Enable the TIM Capture/Compare 4 DMA request */
1110
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1122
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1111
      break;
1123
      break;
Line 1635... Line 1647...
1635
 
1647
 
1636
      /* Set the DMA error callback */
1648
      /* Set the DMA error callback */
1637
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
1649
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
1638
 
1650
 
1639
      /* Enable the DMA channel */
1651
      /* Enable the DMA channel */
1640
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, Length) != HAL_OK)
1652
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1,
-
 
1653
                         Length) != HAL_OK)
1641
      {
1654
      {
-
 
1655
        /* Return error status */
1642
        return HAL_ERROR;
1656
        return HAL_ERROR;
1643
      }
1657
      }
1644
 
1658
 
1645
      /* Enable the TIM Capture/Compare 1 DMA request */
1659
      /* Enable the TIM Capture/Compare 1 DMA request */
1646
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
1660
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
Line 1655... Line 1669...
1655
 
1669
 
1656
      /* Set the DMA error callback */
1670
      /* Set the DMA error callback */
1657
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
1671
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
1658
 
1672
 
1659
      /* Enable the DMA channel */
1673
      /* Enable the DMA channel */
1660
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, Length) != HAL_OK)
1674
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2,
-
 
1675
                         Length) != HAL_OK)
1661
      {
1676
      {
-
 
1677
        /* Return error status */
1662
        return HAL_ERROR;
1678
        return HAL_ERROR;
1663
      }
1679
      }
1664
      /* Enable the TIM Capture/Compare 2 DMA request */
1680
      /* Enable the TIM Capture/Compare 2 DMA request */
1665
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1681
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1666
      break;
1682
      break;
Line 1674... Line 1690...
1674
 
1690
 
1675
      /* Set the DMA error callback */
1691
      /* Set the DMA error callback */
1676
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
1692
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
1677
 
1693
 
1678
      /* Enable the DMA channel */
1694
      /* Enable the DMA channel */
1679
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, Length) != HAL_OK)
1695
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3,
-
 
1696
                         Length) != HAL_OK)
1680
      {
1697
      {
-
 
1698
        /* Return error status */
1681
        return HAL_ERROR;
1699
        return HAL_ERROR;
1682
      }
1700
      }
1683
      /* Enable the TIM Output Capture/Compare 3 request */
1701
      /* Enable the TIM Output Capture/Compare 3 request */
1684
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1702
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1685
      break;
1703
      break;
Line 1693... Line 1711...
1693
 
1711
 
1694
      /* Set the DMA error callback */
1712
      /* Set the DMA error callback */
1695
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
1713
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
1696
 
1714
 
1697
      /* Enable the DMA channel */
1715
      /* Enable the DMA channel */
1698
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, Length) != HAL_OK)
1716
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4,
-
 
1717
                         Length) != HAL_OK)
1699
      {
1718
      {
-
 
1719
        /* Return error status */
1700
        return HAL_ERROR;
1720
        return HAL_ERROR;
1701
      }
1721
      }
1702
      /* Enable the TIM Capture/Compare 4 DMA request */
1722
      /* Enable the TIM Capture/Compare 4 DMA request */
1703
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1723
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1704
      break;
1724
      break;
Line 2220... Line 2240...
2220
  else
2240
  else
2221
  {
2241
  {
2222
    return HAL_ERROR;
2242
    return HAL_ERROR;
2223
  }
2243
  }
2224
 
2244
 
-
 
2245
  /* Enable the Input Capture channel */
-
 
2246
  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);
-
 
2247
 
-
 
2248
  /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
-
 
2249
  if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
-
 
2250
  {
-
 
2251
    tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
-
 
2252
    if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
-
 
2253
    {
-
 
2254
      __HAL_TIM_ENABLE(htim);
-
 
2255
    }
-
 
2256
  }
-
 
2257
  else
-
 
2258
  {
-
 
2259
    __HAL_TIM_ENABLE(htim);
-
 
2260
  }
-
 
2261
 
2225
  switch (Channel)
2262
  switch (Channel)
2226
  {
2263
  {
2227
    case TIM_CHANNEL_1:
2264
    case TIM_CHANNEL_1:
2228
    {
2265
    {
2229
      /* Set the DMA capture callbacks */
2266
      /* Set the DMA capture callbacks */
Line 2232... Line 2269...
2232
 
2269
 
2233
      /* Set the DMA error callback */
2270
      /* Set the DMA error callback */
2234
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
2271
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
2235
 
2272
 
2236
      /* Enable the DMA channel */
2273
      /* Enable the DMA channel */
2237
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData, Length) != HAL_OK)
2274
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData,
-
 
2275
                         Length) != HAL_OK)
2238
      {
2276
      {
-
 
2277
        /* Return error status */
2239
        return HAL_ERROR;
2278
        return HAL_ERROR;
2240
      }
2279
      }
2241
      /* Enable the TIM Capture/Compare 1 DMA request */
2280
      /* Enable the TIM Capture/Compare 1 DMA request */
2242
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
2281
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
2243
      break;
2282
      break;
Line 2251... Line 2290...
2251
 
2290
 
2252
      /* Set the DMA error callback */
2291
      /* Set the DMA error callback */
2253
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
2292
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
2254
 
2293
 
2255
      /* Enable the DMA channel */
2294
      /* Enable the DMA channel */
2256
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData, Length) != HAL_OK)
2295
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData,
-
 
2296
                         Length) != HAL_OK)
2257
      {
2297
      {
-
 
2298
        /* Return error status */
2258
        return HAL_ERROR;
2299
        return HAL_ERROR;
2259
      }
2300
      }
2260
      /* Enable the TIM Capture/Compare 2  DMA request */
2301
      /* Enable the TIM Capture/Compare 2  DMA request */
2261
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
2302
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
2262
      break;
2303
      break;
Line 2270... Line 2311...
2270
 
2311
 
2271
      /* Set the DMA error callback */
2312
      /* Set the DMA error callback */
2272
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
2313
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
2273
 
2314
 
2274
      /* Enable the DMA channel */
2315
      /* Enable the DMA channel */
2275
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->CCR3, (uint32_t)pData, Length) != HAL_OK)
2316
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->CCR3, (uint32_t)pData,
-
 
2317
                         Length) != HAL_OK)
2276
      {
2318
      {
-
 
2319
        /* Return error status */
2277
        return HAL_ERROR;
2320
        return HAL_ERROR;
2278
      }
2321
      }
2279
      /* Enable the TIM Capture/Compare 3  DMA request */
2322
      /* Enable the TIM Capture/Compare 3  DMA request */
2280
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
2323
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
2281
      break;
2324
      break;
Line 2289... Line 2332...
2289
 
2332
 
2290
      /* Set the DMA error callback */
2333
      /* Set the DMA error callback */
2291
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
2334
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
2292
 
2335
 
2293
      /* Enable the DMA channel */
2336
      /* Enable the DMA channel */
2294
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->CCR4, (uint32_t)pData, Length) != HAL_OK)
2337
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->CCR4, (uint32_t)pData,
-
 
2338
                         Length) != HAL_OK)
2295
      {
2339
      {
-
 
2340
        /* Return error status */
2296
        return HAL_ERROR;
2341
        return HAL_ERROR;
2297
      }
2342
      }
2298
      /* Enable the TIM Capture/Compare 4  DMA request */
2343
      /* Enable the TIM Capture/Compare 4  DMA request */
2299
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
2344
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
2300
      break;
2345
      break;
Line 2302... Line 2347...
2302
 
2347
 
2303
    default:
2348
    default:
2304
      break;
2349
      break;
2305
  }
2350
  }
2306
 
2351
 
2307
  /* Enable the Input Capture channel */
-
 
2308
  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);
-
 
2309
 
-
 
2310
  /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
-
 
2311
  if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
-
 
2312
  {
-
 
2313
    tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
-
 
2314
    if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
-
 
2315
    {
-
 
2316
      __HAL_TIM_ENABLE(htim);
-
 
2317
    }
-
 
2318
  }
-
 
2319
  else
-
 
2320
  {
-
 
2321
    __HAL_TIM_ENABLE(htim);
-
 
2322
  }
-
 
2323
 
-
 
2324
  /* Return function status */
2352
  /* Return function status */
2325
  return HAL_OK;
2353
  return HAL_OK;
2326
}
2354
}
2327
 
2355
 
2328
/**
2356
/**
Line 2568... Line 2596...
2568
   */
2596
   */
2569
}
2597
}
2570
 
2598
 
2571
/**
2599
/**
2572
  * @brief  Starts the TIM One Pulse signal generation.
2600
  * @brief  Starts the TIM One Pulse signal generation.
-
 
2601
  * @note Though OutputChannel parameter is deprecated and ignored by the function
-
 
2602
  *        it has been kept to avoid HAL_TIM API compatibility break.
-
 
2603
  * @note The pulse output channel is determined when calling
-
 
2604
  *       @ref HAL_TIM_OnePulse_ConfigChannel().
2573
  * @param  htim TIM One Pulse handle
2605
  * @param  htim TIM One Pulse handle
2574
  * @param  OutputChannel TIM Channels to be enabled
2606
  * @param  OutputChannel See note above
2575
  *          This parameter can be one of the following values:
-
 
2576
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
2577
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
2578
  * @retval HAL status
2607
  * @retval HAL status
2579
  */
2608
  */
2580
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2609
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2581
{
2610
{
2582
  HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1);
2611
  HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1);
Line 2585... Line 2614...
2585
  /* Prevent unused argument(s) compilation warning */
2614
  /* Prevent unused argument(s) compilation warning */
2586
  UNUSED(OutputChannel);
2615
  UNUSED(OutputChannel);
2587
 
2616
 
2588
  /* Check the TIM channels state */
2617
  /* Check the TIM channels state */
2589
  if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
2618
  if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
2590
   || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
2619
      || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
2591
  {
2620
  {
2592
    return HAL_ERROR;
2621
    return HAL_ERROR;
2593
  }
2622
  }
2594
 
2623
 
2595
  /* Set the TIM channels state */
2624
  /* Set the TIM channels state */
Line 2598... Line 2627...
2598
 
2627
 
2599
  /* Enable the Capture compare and the Input Capture channels
2628
  /* Enable the Capture compare and the Input Capture channels
2600
    (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2629
    (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2601
    if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2630
    if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2602
    if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2631
    if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2603
    in all combinations, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together
2632
    whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together
2604
 
2633
 
2605
    No need to enable the counter, it's enabled automatically by hardware
2634
    No need to enable the counter, it's enabled automatically by hardware
2606
    (the counter starts in response to a stimulus and generate a pulse */
2635
    (the counter starts in response to a stimulus and generate a pulse */
2607
 
2636
 
2608
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE);
2637
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE);
Line 2612... Line 2641...
2612
  return HAL_OK;
2641
  return HAL_OK;
2613
}
2642
}
2614
 
2643
 
2615
/**
2644
/**
2616
  * @brief  Stops the TIM One Pulse signal generation.
2645
  * @brief  Stops the TIM One Pulse signal generation.
-
 
2646
  * @note Though OutputChannel parameter is deprecated and ignored by the function
-
 
2647
  *        it has been kept to avoid HAL_TIM API compatibility break.
-
 
2648
  * @note The pulse output channel is determined when calling
-
 
2649
  *       @ref HAL_TIM_OnePulse_ConfigChannel().
2617
  * @param  htim TIM One Pulse handle
2650
  * @param  htim TIM One Pulse handle
2618
  * @param  OutputChannel TIM Channels to be disable
2651
  * @param  OutputChannel See note above
2619
  *          This parameter can be one of the following values:
-
 
2620
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
2621
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
2622
  * @retval HAL status
2652
  * @retval HAL status
2623
  */
2653
  */
2624
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2654
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2625
{
2655
{
2626
  /* Prevent unused argument(s) compilation warning */
2656
  /* Prevent unused argument(s) compilation warning */
Line 2628... Line 2658...
2628
 
2658
 
2629
  /* Disable the Capture compare and the Input Capture channels
2659
  /* Disable the Capture compare and the Input Capture channels
2630
  (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2660
  (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2631
  if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2661
  if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2632
  if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2662
  if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2633
  in all combinations, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */
2663
  whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */
2634
 
2664
 
2635
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE);
2665
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE);
2636
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE);
2666
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE);
2637
 
2667
 
2638
  /* Disable the Peripheral */
2668
  /* Disable the Peripheral */
Line 2646... Line 2676...
2646
  return HAL_OK;
2676
  return HAL_OK;
2647
}
2677
}
2648
 
2678
 
2649
/**
2679
/**
2650
  * @brief  Starts the TIM One Pulse signal generation in interrupt mode.
2680
  * @brief  Starts the TIM One Pulse signal generation in interrupt mode.
-
 
2681
  * @note Though OutputChannel parameter is deprecated and ignored by the function
-
 
2682
  *        it has been kept to avoid HAL_TIM API compatibility break.
-
 
2683
  * @note The pulse output channel is determined when calling
-
 
2684
  *       @ref HAL_TIM_OnePulse_ConfigChannel().
2651
  * @param  htim TIM One Pulse handle
2685
  * @param  htim TIM One Pulse handle
2652
  * @param  OutputChannel TIM Channels to be enabled
2686
  * @param  OutputChannel See note above
2653
  *          This parameter can be one of the following values:
-
 
2654
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
2655
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
2656
  * @retval HAL status
2687
  * @retval HAL status
2657
  */
2688
  */
2658
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2689
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2659
{
2690
{
2660
  HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1);
2691
  HAL_TIM_ChannelStateTypeDef channel_1_state = TIM_CHANNEL_STATE_GET(htim, TIM_CHANNEL_1);
Line 2663... Line 2694...
2663
  /* Prevent unused argument(s) compilation warning */
2694
  /* Prevent unused argument(s) compilation warning */
2664
  UNUSED(OutputChannel);
2695
  UNUSED(OutputChannel);
2665
 
2696
 
2666
  /* Check the TIM channels state */
2697
  /* Check the TIM channels state */
2667
  if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
2698
  if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
2668
   || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
2699
      || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
2669
  {
2700
  {
2670
    return HAL_ERROR;
2701
    return HAL_ERROR;
2671
  }
2702
  }
2672
 
2703
 
2673
  /* Set the TIM channels state */
2704
  /* Set the TIM channels state */
Line 2676... Line 2707...
2676
 
2707
 
2677
  /* Enable the Capture compare and the Input Capture channels
2708
  /* Enable the Capture compare and the Input Capture channels
2678
    (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2709
    (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2679
    if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2710
    if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2680
    if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2711
    if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2681
    in all combinations, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together
2712
    whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be enabled together
2682
 
2713
 
2683
    No need to enable the counter, it's enabled automatically by hardware
2714
    No need to enable the counter, it's enabled automatically by hardware
2684
    (the counter starts in response to a stimulus and generate a pulse */
2715
    (the counter starts in response to a stimulus and generate a pulse */
2685
 
2716
 
2686
  /* Enable the TIM Capture/Compare 1 interrupt */
2717
  /* Enable the TIM Capture/Compare 1 interrupt */
Line 2696... Line 2727...
2696
  return HAL_OK;
2727
  return HAL_OK;
2697
}
2728
}
2698
 
2729
 
2699
/**
2730
/**
2700
  * @brief  Stops the TIM One Pulse signal generation in interrupt mode.
2731
  * @brief  Stops the TIM One Pulse signal generation in interrupt mode.
-
 
2732
  * @note Though OutputChannel parameter is deprecated and ignored by the function
-
 
2733
  *        it has been kept to avoid HAL_TIM API compatibility break.
-
 
2734
  * @note The pulse output channel is determined when calling
-
 
2735
  *       @ref HAL_TIM_OnePulse_ConfigChannel().
2701
  * @param  htim TIM One Pulse handle
2736
  * @param  htim TIM One Pulse handle
2702
  * @param  OutputChannel TIM Channels to be enabled
2737
  * @param  OutputChannel See note above
2703
  *          This parameter can be one of the following values:
-
 
2704
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
-
 
2705
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
-
 
2706
  * @retval HAL status
2738
  * @retval HAL status
2707
  */
2739
  */
2708
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2740
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
2709
{
2741
{
2710
  /* Prevent unused argument(s) compilation warning */
2742
  /* Prevent unused argument(s) compilation warning */
Line 2718... Line 2750...
2718
 
2750
 
2719
  /* Disable the Capture compare and the Input Capture channels
2751
  /* Disable the Capture compare and the Input Capture channels
2720
  (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2752
  (in the OPM Mode the two possible channels that can be used are TIM_CHANNEL_1 and TIM_CHANNEL_2)
2721
  if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2753
  if TIM_CHANNEL_1 is used as output, the TIM_CHANNEL_2 will be used as input and
2722
  if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2754
  if TIM_CHANNEL_1 is used as input, the TIM_CHANNEL_2 will be used as output
2723
  in all combinations, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */
2755
  whatever the combination, the TIM_CHANNEL_1 and TIM_CHANNEL_2 should be disabled together */
2724
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE);
2756
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_1, TIM_CCx_DISABLE);
2725
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE);
2757
  TIM_CCxChannelCmd(htim->Instance, TIM_CHANNEL_2, TIM_CCx_DISABLE);
2726
 
2758
 
2727
  /* Disable the Peripheral */
2759
  /* Disable the Peripheral */
2728
  __HAL_TIM_DISABLE(htim);
2760
  __HAL_TIM_DISABLE(htim);
Line 2998... Line 3030...
2998
    }
3030
    }
2999
  }
3031
  }
3000
  else
3032
  else
3001
  {
3033
  {
3002
    if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
3034
    if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
3003
     || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
3035
        || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
3004
    {
3036
    {
3005
      return HAL_ERROR;
3037
      return HAL_ERROR;
3006
    }
3038
    }
3007
    else
3039
    else
3008
    {
3040
    {
Line 3085... Line 3117...
3085
  /* Set the TIM channel(s) state */
3117
  /* Set the TIM channel(s) state */
3086
  if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3118
  if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3087
  {
3119
  {
3088
    TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY);
3120
    TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY);
3089
  }
3121
  }
3090
  else
3122
  else
3091
  {
3123
  {
3092
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
3124
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
3093
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
3125
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
3094
  }
3126
  }
3095
 
3127
 
Line 3139... Line 3171...
3139
    }
3171
    }
3140
  }
3172
  }
3141
  else
3173
  else
3142
  {
3174
  {
3143
    if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
3175
    if ((channel_1_state != HAL_TIM_CHANNEL_STATE_READY)
3144
     || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
3176
        || (channel_2_state != HAL_TIM_CHANNEL_STATE_READY))
3145
    {
3177
    {
3146
      return HAL_ERROR;
3178
      return HAL_ERROR;
3147
    }
3179
    }
3148
    else
3180
    else
3149
    {
3181
    {
Line 3234... Line 3266...
3234
  /* Set the TIM channel(s) state */
3266
  /* Set the TIM channel(s) state */
3235
  if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3267
  if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3236
  {
3268
  {
3237
    TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY);
3269
    TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY);
3238
  }
3270
  }
3239
  else
3271
  else
3240
  {
3272
  {
3241
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
3273
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
3242
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
3274
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
3243
  }
3275
  }
3244
 
3276
 
Line 3314... Line 3346...
3314
    }
3346
    }
3315
  }
3347
  }
3316
  else
3348
  else
3317
  {
3349
  {
3318
    if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)
3350
    if ((channel_1_state == HAL_TIM_CHANNEL_STATE_BUSY)
3319
     || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY))
3351
        || (channel_2_state == HAL_TIM_CHANNEL_STATE_BUSY))
3320
    {
3352
    {
3321
      return HAL_BUSY;
3353
      return HAL_BUSY;
3322
    }
3354
    }
3323
    else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY)
3355
    else if ((channel_1_state == HAL_TIM_CHANNEL_STATE_READY)
3324
          && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY))
3356
             && (channel_2_state == HAL_TIM_CHANNEL_STATE_READY))
3325
    {
3357
    {
3326
      if ((((pData1 == NULL) || (pData2 == NULL))) && (Length > 0U))
3358
      if ((((pData1 == NULL) || (pData2 == NULL))) && (Length > 0U))
3327
      {
3359
      {
3328
        return HAL_ERROR;
3360
        return HAL_ERROR;
3329
      }
3361
      }
Line 3349... Line 3381...
3349
 
3381
 
3350
      /* Set the DMA error callback */
3382
      /* Set the DMA error callback */
3351
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
3383
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
3352
 
3384
 
3353
      /* Enable the DMA channel */
3385
      /* Enable the DMA channel */
3354
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1, Length) != HAL_OK)
3386
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1,
-
 
3387
                         Length) != HAL_OK)
3355
      {
3388
      {
-
 
3389
        /* Return error status */
3356
        return HAL_ERROR;
3390
        return HAL_ERROR;
3357
      }
3391
      }
3358
      /* Enable the TIM Input Capture DMA request */
3392
      /* Enable the TIM Input Capture DMA request */
3359
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
3393
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
3360
 
3394
 
Line 3373... Line 3407...
3373
      htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt;
3407
      htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMACaptureHalfCplt;
3374
 
3408
 
3375
      /* Set the DMA error callback */
3409
      /* Set the DMA error callback */
3376
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError;
3410
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError;
3377
      /* Enable the DMA channel */
3411
      /* Enable the DMA channel */
3378
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2, Length) != HAL_OK)
3412
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2,
-
 
3413
                         Length) != HAL_OK)
3379
      {
3414
      {
-
 
3415
        /* Return error status */
3380
        return HAL_ERROR;
3416
        return HAL_ERROR;
3381
      }
3417
      }
3382
      /* Enable the TIM Input Capture  DMA request */
3418
      /* Enable the TIM Input Capture  DMA request */
3383
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
3419
      __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
3384
 
3420
 
Line 3398... Line 3434...
3398
 
3434
 
3399
      /* Set the DMA error callback */
3435
      /* Set the DMA error callback */
3400
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
3436
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
3401
 
3437
 
3402
      /* Enable the DMA channel */
3438
      /* Enable the DMA channel */
3403
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1, Length) != HAL_OK)
3439
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1,
-
 
3440
                         Length) != HAL_OK)
3404
      {
3441
      {
-
 
3442
        /* Return error status */
3405
        return HAL_ERROR;
3443
        return HAL_ERROR;
3406
      }
3444
      }
3407
 
3445
 
3408
      /* Set the DMA capture callbacks */
3446
      /* Set the DMA capture callbacks */
3409
      htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt;
3447
      htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMACaptureCplt;
Line 3411... Line 3449...
3411
 
3449
 
3412
      /* Set the DMA error callback */
3450
      /* Set the DMA error callback */
3413
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
3451
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
3414
 
3452
 
3415
      /* Enable the DMA channel */
3453
      /* Enable the DMA channel */
3416
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2, Length) != HAL_OK)
3454
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2,
-
 
3455
                         Length) != HAL_OK)
3417
      {
3456
      {
-
 
3457
        /* Return error status */
3418
        return HAL_ERROR;
3458
        return HAL_ERROR;
3419
      }
3459
      }
3420
      /* Enable the Peripheral */
3460
      /* Enable the Peripheral */
3421
      __HAL_TIM_ENABLE(htim);
3461
      __HAL_TIM_ENABLE(htim);
3422
 
3462
 
Line 3490... Line 3530...
3490
  /* Set the TIM channel(s) state */
3530
  /* Set the TIM channel(s) state */
3491
  if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3531
  if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3492
  {
3532
  {
3493
    TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY);
3533
    TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_READY);
3494
  }
3534
  }
3495
  else
3535
  else
3496
  {
3536
  {
3497
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
3537
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
3498
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
3538
    TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
3499
  }
3539
  }
3500
 
3540
 
Line 4210... Line 4250...
4210
      /* Set the DMA error callback */
4250
      /* Set the DMA error callback */
4211
      htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ;
4251
      htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ;
4212
 
4252
 
4213
      /* Enable the DMA channel */
4253
      /* Enable the DMA channel */
4214
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)BurstBuffer,
4254
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)BurstBuffer,
4215
                           (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4255
                         (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4216
      {
4256
      {
-
 
4257
        /* Return error status */
4217
        return HAL_ERROR;
4258
        return HAL_ERROR;
4218
      }
4259
      }
4219
      break;
4260
      break;
4220
    }
4261
    }
4221
    case TIM_DMA_CC1:
4262
    case TIM_DMA_CC1:
Line 4227... Line 4268...
4227
      /* Set the DMA error callback */
4268
      /* Set the DMA error callback */
4228
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
4269
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
4229
 
4270
 
4230
      /* Enable the DMA channel */
4271
      /* Enable the DMA channel */
4231
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)BurstBuffer,
4272
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)BurstBuffer,
4232
                           (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4273
                         (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4233
      {
4274
      {
-
 
4275
        /* Return error status */
4234
        return HAL_ERROR;
4276
        return HAL_ERROR;
4235
      }
4277
      }
4236
      break;
4278
      break;
4237
    }
4279
    }
4238
    case TIM_DMA_CC2:
4280
    case TIM_DMA_CC2:
Line 4244... Line 4286...
4244
      /* Set the DMA error callback */
4286
      /* Set the DMA error callback */
4245
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
4287
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
4246
 
4288
 
4247
      /* Enable the DMA channel */
4289
      /* Enable the DMA channel */
4248
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)BurstBuffer,
4290
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)BurstBuffer,
4249
                           (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4291
                         (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4250
      {
4292
      {
-
 
4293
        /* Return error status */
4251
        return HAL_ERROR;
4294
        return HAL_ERROR;
4252
      }
4295
      }
4253
      break;
4296
      break;
4254
    }
4297
    }
4255
    case TIM_DMA_CC3:
4298
    case TIM_DMA_CC3:
Line 4261... Line 4304...
4261
      /* Set the DMA error callback */
4304
      /* Set the DMA error callback */
4262
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
4305
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
4263
 
4306
 
4264
      /* Enable the DMA channel */
4307
      /* Enable the DMA channel */
4265
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)BurstBuffer,
4308
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)BurstBuffer,
4266
                           (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4309
                         (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4267
      {
4310
      {
-
 
4311
        /* Return error status */
4268
        return HAL_ERROR;
4312
        return HAL_ERROR;
4269
      }
4313
      }
4270
      break;
4314
      break;
4271
    }
4315
    }
4272
    case TIM_DMA_CC4:
4316
    case TIM_DMA_CC4:
Line 4278... Line 4322...
4278
      /* Set the DMA error callback */
4322
      /* Set the DMA error callback */
4279
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
4323
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
4280
 
4324
 
4281
      /* Enable the DMA channel */
4325
      /* Enable the DMA channel */
4282
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)BurstBuffer,
4326
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)BurstBuffer,
4283
                           (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4327
                         (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4284
      {
4328
      {
-
 
4329
        /* Return error status */
4285
        return HAL_ERROR;
4330
        return HAL_ERROR;
4286
      }
4331
      }
4287
      break;
4332
      break;
4288
    }
4333
    }
4289
    case TIM_DMA_TRIGGER:
4334
    case TIM_DMA_TRIGGER:
Line 4295... Line 4340...
4295
      /* Set the DMA error callback */
4340
      /* Set the DMA error callback */
4296
      htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ;
4341
      htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ;
4297
 
4342
 
4298
      /* Enable the DMA channel */
4343
      /* Enable the DMA channel */
4299
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)BurstBuffer,
4344
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)BurstBuffer,
4300
                           (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4345
                         (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4301
      {
4346
      {
-
 
4347
        /* Return error status */
4302
        return HAL_ERROR;
4348
        return HAL_ERROR;
4303
      }
4349
      }
4304
      break;
4350
      break;
4305
    }
4351
    }
4306
    default:
4352
    default:
Line 4322... Line 4368...
4322
  * @param  BurstRequestSrc TIM DMA Request sources to disable
4368
  * @param  BurstRequestSrc TIM DMA Request sources to disable
4323
  * @retval HAL status
4369
  * @retval HAL status
4324
  */
4370
  */
4325
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
4371
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
4326
{
4372
{
4327
  HAL_StatusTypeDef status = HAL_OK;
-
 
4328
  /* Check the parameters */
4373
  /* Check the parameters */
4329
  assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
4374
  assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
4330
 
4375
 
4331
  /* Abort the DMA transfer (at least disable the DMA channel) */
4376
  /* Abort the DMA transfer (at least disable the DMA channel) */
4332
  switch (BurstRequestSrc)
4377
  switch (BurstRequestSrc)
Line 4346... Line 4391...
4346
      (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]);
4391
      (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]);
4347
      break;
4392
      break;
4348
    }
4393
    }
4349
    case TIM_DMA_CC3:
4394
    case TIM_DMA_CC3:
4350
    {
4395
    {
4351
      status =  HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]);
4396
      (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]);
4352
      break;
4397
      break;
4353
    }
4398
    }
4354
    case TIM_DMA_CC4:
4399
    case TIM_DMA_CC4:
4355
    {
4400
    {
4356
      (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]);
4401
      (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]);
Line 4363... Line 4408...
4363
    }
4408
    }
4364
    default:
4409
    default:
4365
      break;
4410
      break;
4366
  }
4411
  }
4367
 
4412
 
4368
  if (HAL_OK == status)
-
 
4369
  {
-
 
4370
    /* Disable the TIM Update DMA request */
4413
  /* Disable the TIM Update DMA request */
4371
    __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
4414
  __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
4372
  }
-
 
4373
 
4415
 
4374
  /* Change the DMA burst operation state */
4416
  /* Change the DMA burst operation state */
4375
  htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
4417
  htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
4376
 
4418
 
4377
  /* Return function status */
4419
  /* Return function status */
4378
  return status;
4420
  return HAL_OK;
4379
}
4421
}
4380
 
4422
 
4381
/**
4423
/**
4382
  * @brief  Configure the DMA Burst to transfer Data from the TIM peripheral to the memory
4424
  * @brief  Configure the DMA Burst to transfer Data from the TIM peripheral to the memory
4383
  * @param  htim TIM handle
4425
  * @param  htim TIM handle
Line 4499... Line 4541...
4499
      /* Set the DMA error callback */
4541
      /* Set the DMA error callback */
4500
      htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ;
4542
      htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback = TIM_DMAError ;
4501
 
4543
 
4502
      /* Enable the DMA channel */
4544
      /* Enable the DMA channel */
4503
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4545
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4504
                           DataLength) != HAL_OK)
4546
                         DataLength) != HAL_OK)
4505
      {
4547
      {
-
 
4548
        /* Return error status */
4506
        return HAL_ERROR;
4549
        return HAL_ERROR;
4507
      }
4550
      }
4508
      break;
4551
      break;
4509
    }
4552
    }
4510
    case TIM_DMA_CC1:
4553
    case TIM_DMA_CC1:
Line 4516... Line 4559...
4516
      /* Set the DMA error callback */
4559
      /* Set the DMA error callback */
4517
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
4560
      htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
4518
 
4561
 
4519
      /* Enable the DMA channel */
4562
      /* Enable the DMA channel */
4520
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4563
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4521
                           DataLength) != HAL_OK)
4564
                         DataLength) != HAL_OK)
4522
      {
4565
      {
-
 
4566
        /* Return error status */
4523
        return HAL_ERROR;
4567
        return HAL_ERROR;
4524
      }
4568
      }
4525
      break;
4569
      break;
4526
    }
4570
    }
4527
    case TIM_DMA_CC2:
4571
    case TIM_DMA_CC2:
Line 4533... Line 4577...
4533
      /* Set the DMA error callback */
4577
      /* Set the DMA error callback */
4534
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
4578
      htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
4535
 
4579
 
4536
      /* Enable the DMA channel */
4580
      /* Enable the DMA channel */
4537
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4581
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4538
                           DataLength) != HAL_OK)
4582
                         DataLength) != HAL_OK)
4539
      {
4583
      {
-
 
4584
        /* Return error status */
4540
        return HAL_ERROR;
4585
        return HAL_ERROR;
4541
      }
4586
      }
4542
      break;
4587
      break;
4543
    }
4588
    }
4544
    case TIM_DMA_CC3:
4589
    case TIM_DMA_CC3:
Line 4550... Line 4595...
4550
      /* Set the DMA error callback */
4595
      /* Set the DMA error callback */
4551
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
4596
      htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
4552
 
4597
 
4553
      /* Enable the DMA channel */
4598
      /* Enable the DMA channel */
4554
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4599
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4555
                           DataLength) != HAL_OK)
4600
                         DataLength) != HAL_OK)
4556
      {
4601
      {
-
 
4602
        /* Return error status */
4557
        return HAL_ERROR;
4603
        return HAL_ERROR;
4558
      }
4604
      }
4559
      break;
4605
      break;
4560
    }
4606
    }
4561
    case TIM_DMA_CC4:
4607
    case TIM_DMA_CC4:
Line 4567... Line 4613...
4567
      /* Set the DMA error callback */
4613
      /* Set the DMA error callback */
4568
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
4614
      htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
4569
 
4615
 
4570
      /* Enable the DMA channel */
4616
      /* Enable the DMA channel */
4571
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4617
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4572
                           DataLength) != HAL_OK)
4618
                         DataLength) != HAL_OK)
4573
      {
4619
      {
-
 
4620
        /* Return error status */
4574
        return HAL_ERROR;
4621
        return HAL_ERROR;
4575
      }
4622
      }
4576
      break;
4623
      break;
4577
    }
4624
    }
4578
    case TIM_DMA_TRIGGER:
4625
    case TIM_DMA_TRIGGER:
Line 4584... Line 4631...
4584
      /* Set the DMA error callback */
4631
      /* Set the DMA error callback */
4585
      htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ;
4632
      htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback = TIM_DMAError ;
4586
 
4633
 
4587
      /* Enable the DMA channel */
4634
      /* Enable the DMA channel */
4588
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4635
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4589
                           DataLength) != HAL_OK)
4636
                         DataLength) != HAL_OK)
4590
      {
4637
      {
-
 
4638
        /* Return error status */
4591
        return HAL_ERROR;
4639
        return HAL_ERROR;
4592
      }
4640
      }
4593
      break;
4641
      break;
4594
    }
4642
    }
4595
    default:
4643
    default:
Line 4612... Line 4660...
4612
  * @param  BurstRequestSrc TIM DMA Request sources to disable.
4660
  * @param  BurstRequestSrc TIM DMA Request sources to disable.
4613
  * @retval HAL status
4661
  * @retval HAL status
4614
  */
4662
  */
4615
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
4663
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
4616
{
4664
{
4617
  HAL_StatusTypeDef status = HAL_OK;
-
 
4618
  /* Check the parameters */
4665
  /* Check the parameters */
4619
  assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
4666
  assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
4620
 
4667
 
4621
  /* Abort the DMA transfer (at least disable the DMA channel) */
4668
  /* Abort the DMA transfer (at least disable the DMA channel) */
4622
  switch (BurstRequestSrc)
4669
  switch (BurstRequestSrc)
Line 4653... Line 4700...
4653
    }
4700
    }
4654
    default:
4701
    default:
4655
      break;
4702
      break;
4656
  }
4703
  }
4657
 
4704
 
4658
  if (HAL_OK == status)
-
 
4659
  {
-
 
4660
    /* Disable the TIM Update DMA request */
4705
  /* Disable the TIM Update DMA request */
4661
    __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
4706
  __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
4662
  }
-
 
4663
 
4707
 
4664
  /* Change the DMA burst operation state */
4708
  /* Change the DMA burst operation state */
4665
  htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
4709
  htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
4666
 
4710
 
4667
  /* Return function status */
4711
  /* Return function status */
4668
  return status;
4712
  return HAL_OK;
4669
}
4713
}
4670
 
4714
 
4671
/**
4715
/**
4672
  * @brief  Generate a software event
4716
  * @brief  Generate a software event
4673
  * @param  htim TIM handle
4717
  * @param  htim TIM handle
Line 5600... Line 5644...
5600
  if (htim->State == HAL_TIM_STATE_READY)
5644
  if (htim->State == HAL_TIM_STATE_READY)
5601
  {
5645
  {
5602
    switch (CallbackID)
5646
    switch (CallbackID)
5603
    {
5647
    {
5604
      case HAL_TIM_BASE_MSPINIT_CB_ID :
5648
      case HAL_TIM_BASE_MSPINIT_CB_ID :
-
 
5649
        /* Legacy weak Base MspInit Callback */
5605
        htim->Base_MspInitCallback              = HAL_TIM_Base_MspInit;                      /* Legacy weak Base MspInit Callback */
5650
        htim->Base_MspInitCallback              = HAL_TIM_Base_MspInit;
5606
        break;
5651
        break;
5607
 
5652
 
5608
      case HAL_TIM_BASE_MSPDEINIT_CB_ID :
5653
      case HAL_TIM_BASE_MSPDEINIT_CB_ID :
-
 
5654
        /* Legacy weak Base Msp DeInit Callback */
5609
        htim->Base_MspDeInitCallback            = HAL_TIM_Base_MspDeInit;                    /* Legacy weak Base Msp DeInit Callback */
5655
        htim->Base_MspDeInitCallback            = HAL_TIM_Base_MspDeInit;
5610
        break;
5656
        break;
5611
 
5657
 
5612
      case HAL_TIM_IC_MSPINIT_CB_ID :
5658
      case HAL_TIM_IC_MSPINIT_CB_ID :
-
 
5659
        /* Legacy weak IC Msp Init Callback */
5613
        htim->IC_MspInitCallback                = HAL_TIM_IC_MspInit;                        /* Legacy weak IC Msp Init Callback */
5660
        htim->IC_MspInitCallback                = HAL_TIM_IC_MspInit;
5614
        break;
5661
        break;
5615
 
5662
 
5616
      case HAL_TIM_IC_MSPDEINIT_CB_ID :
5663
      case HAL_TIM_IC_MSPDEINIT_CB_ID :
-
 
5664
        /* Legacy weak IC Msp DeInit Callback */
5617
        htim->IC_MspDeInitCallback              = HAL_TIM_IC_MspDeInit;                      /* Legacy weak IC Msp DeInit Callback */
5665
        htim->IC_MspDeInitCallback              = HAL_TIM_IC_MspDeInit;
5618
        break;
5666
        break;
5619
 
5667
 
5620
      case HAL_TIM_OC_MSPINIT_CB_ID :
5668
      case HAL_TIM_OC_MSPINIT_CB_ID :
-
 
5669
        /* Legacy weak OC Msp Init Callback */
5621
        htim->OC_MspInitCallback                = HAL_TIM_OC_MspInit;                        /* Legacy weak OC Msp Init Callback */
5670
        htim->OC_MspInitCallback                = HAL_TIM_OC_MspInit;
5622
        break;
5671
        break;
5623
 
5672
 
5624
      case HAL_TIM_OC_MSPDEINIT_CB_ID :
5673
      case HAL_TIM_OC_MSPDEINIT_CB_ID :
-
 
5674
        /* Legacy weak OC Msp DeInit Callback */
5625
        htim->OC_MspDeInitCallback              = HAL_TIM_OC_MspDeInit;                      /* Legacy weak OC Msp DeInit Callback */
5675
        htim->OC_MspDeInitCallback              = HAL_TIM_OC_MspDeInit;
5626
        break;
5676
        break;
5627
 
5677
 
5628
      case HAL_TIM_PWM_MSPINIT_CB_ID :
5678
      case HAL_TIM_PWM_MSPINIT_CB_ID :
-
 
5679
        /* Legacy weak PWM Msp Init Callback */
5629
        htim->PWM_MspInitCallback               = HAL_TIM_PWM_MspInit;                       /* Legacy weak PWM Msp Init Callback */
5680
        htim->PWM_MspInitCallback               = HAL_TIM_PWM_MspInit;
5630
        break;
5681
        break;
5631
 
5682
 
5632
      case HAL_TIM_PWM_MSPDEINIT_CB_ID :
5683
      case HAL_TIM_PWM_MSPDEINIT_CB_ID :
-
 
5684
        /* Legacy weak PWM Msp DeInit Callback */
5633
        htim->PWM_MspDeInitCallback             = HAL_TIM_PWM_MspDeInit;                     /* Legacy weak PWM Msp DeInit Callback */
5685
        htim->PWM_MspDeInitCallback             = HAL_TIM_PWM_MspDeInit;
5634
        break;
5686
        break;
5635
 
5687
 
5636
      case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID :
5688
      case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID :
-
 
5689
        /* Legacy weak One Pulse Msp Init Callback */
5637
        htim->OnePulse_MspInitCallback          = HAL_TIM_OnePulse_MspInit;                  /* Legacy weak One Pulse Msp Init Callback */
5690
        htim->OnePulse_MspInitCallback          = HAL_TIM_OnePulse_MspInit;
5638
        break;
5691
        break;
5639
 
5692
 
5640
      case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID :
5693
      case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID :
-
 
5694
        /* Legacy weak One Pulse Msp DeInit Callback */
5641
        htim->OnePulse_MspDeInitCallback        = HAL_TIM_OnePulse_MspDeInit;                /* Legacy weak One Pulse Msp DeInit Callback */
5695
        htim->OnePulse_MspDeInitCallback        = HAL_TIM_OnePulse_MspDeInit;
5642
        break;
5696
        break;
5643
 
5697
 
5644
      case HAL_TIM_ENCODER_MSPINIT_CB_ID :
5698
      case HAL_TIM_ENCODER_MSPINIT_CB_ID :
-
 
5699
        /* Legacy weak Encoder Msp Init Callback */
5645
        htim->Encoder_MspInitCallback           = HAL_TIM_Encoder_MspInit;                   /* Legacy weak Encoder Msp Init Callback */
5700
        htim->Encoder_MspInitCallback           = HAL_TIM_Encoder_MspInit;
5646
        break;
5701
        break;
5647
 
5702
 
5648
      case HAL_TIM_ENCODER_MSPDEINIT_CB_ID :
5703
      case HAL_TIM_ENCODER_MSPDEINIT_CB_ID :
-
 
5704
        /* Legacy weak Encoder Msp DeInit Callback */
5649
        htim->Encoder_MspDeInitCallback         = HAL_TIM_Encoder_MspDeInit;                 /* Legacy weak Encoder Msp DeInit Callback */
5705
        htim->Encoder_MspDeInitCallback         = HAL_TIM_Encoder_MspDeInit;
5650
        break;
5706
        break;
5651
 
5707
 
5652
      case HAL_TIM_PERIOD_ELAPSED_CB_ID :
5708
      case HAL_TIM_PERIOD_ELAPSED_CB_ID :
-
 
5709
        /* Legacy weak Period Elapsed Callback */
5653
        htim->PeriodElapsedCallback             = HAL_TIM_PeriodElapsedCallback;             /* Legacy weak Period Elapsed Callback */
5710
        htim->PeriodElapsedCallback             = HAL_TIM_PeriodElapsedCallback;
5654
        break;
5711
        break;
5655
 
5712
 
5656
      case HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID :
5713
      case HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID :
-
 
5714
        /* Legacy weak Period Elapsed half complete Callback */
5657
        htim->PeriodElapsedHalfCpltCallback     = HAL_TIM_PeriodElapsedHalfCpltCallback;     /* Legacy weak Period Elapsed half complete Callback */
5715
        htim->PeriodElapsedHalfCpltCallback     = HAL_TIM_PeriodElapsedHalfCpltCallback;
5658
        break;
5716
        break;
5659
 
5717
 
5660
      case HAL_TIM_TRIGGER_CB_ID :
5718
      case HAL_TIM_TRIGGER_CB_ID :
-
 
5719
        /* Legacy weak Trigger Callback */
5661
        htim->TriggerCallback                   = HAL_TIM_TriggerCallback;                   /* Legacy weak Trigger Callback */
5720
        htim->TriggerCallback                   = HAL_TIM_TriggerCallback;
5662
        break;
5721
        break;
5663
 
5722
 
5664
      case HAL_TIM_TRIGGER_HALF_CB_ID :
5723
      case HAL_TIM_TRIGGER_HALF_CB_ID :
-
 
5724
        /* Legacy weak Trigger half complete Callback */
5665
        htim->TriggerHalfCpltCallback           = HAL_TIM_TriggerHalfCpltCallback;           /* Legacy weak Trigger half complete Callback */
5725
        htim->TriggerHalfCpltCallback           = HAL_TIM_TriggerHalfCpltCallback;
5666
        break;
5726
        break;
5667
 
5727
 
5668
      case HAL_TIM_IC_CAPTURE_CB_ID :
5728
      case HAL_TIM_IC_CAPTURE_CB_ID :
-
 
5729
        /* Legacy weak IC Capture Callback */
5669
        htim->IC_CaptureCallback                = HAL_TIM_IC_CaptureCallback;                /* Legacy weak IC Capture Callback */
5730
        htim->IC_CaptureCallback                = HAL_TIM_IC_CaptureCallback;
5670
        break;
5731
        break;
5671
 
5732
 
5672
      case HAL_TIM_IC_CAPTURE_HALF_CB_ID :
5733
      case HAL_TIM_IC_CAPTURE_HALF_CB_ID :
-
 
5734
        /* Legacy weak IC Capture half complete Callback */
5673
        htim->IC_CaptureHalfCpltCallback        = HAL_TIM_IC_CaptureHalfCpltCallback;        /* Legacy weak IC Capture half complete Callback */
5735
        htim->IC_CaptureHalfCpltCallback        = HAL_TIM_IC_CaptureHalfCpltCallback;
5674
        break;
5736
        break;
5675
 
5737
 
5676
      case HAL_TIM_OC_DELAY_ELAPSED_CB_ID :
5738
      case HAL_TIM_OC_DELAY_ELAPSED_CB_ID :
-
 
5739
        /* Legacy weak OC Delay Elapsed Callback */
5677
        htim->OC_DelayElapsedCallback           = HAL_TIM_OC_DelayElapsedCallback;           /* Legacy weak OC Delay Elapsed Callback */
5740
        htim->OC_DelayElapsedCallback           = HAL_TIM_OC_DelayElapsedCallback;
5678
        break;
5741
        break;
5679
 
5742
 
5680
      case HAL_TIM_PWM_PULSE_FINISHED_CB_ID :
5743
      case HAL_TIM_PWM_PULSE_FINISHED_CB_ID :
-
 
5744
        /* Legacy weak PWM Pulse Finished Callback */
5681
        htim->PWM_PulseFinishedCallback         = HAL_TIM_PWM_PulseFinishedCallback;         /* Legacy weak PWM Pulse Finished Callback */
5745
        htim->PWM_PulseFinishedCallback         = HAL_TIM_PWM_PulseFinishedCallback;
5682
        break;
5746
        break;
5683
 
5747
 
5684
      case HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID :
5748
      case HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID :
-
 
5749
        /* Legacy weak PWM Pulse Finished half complete Callback */
5685
        htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback; /* Legacy weak PWM Pulse Finished half complete Callback */
5750
        htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback;
5686
        break;
5751
        break;
5687
 
5752
 
5688
      case HAL_TIM_ERROR_CB_ID :
5753
      case HAL_TIM_ERROR_CB_ID :
-
 
5754
        /* Legacy weak Error Callback */
5689
        htim->ErrorCallback                     = HAL_TIM_ErrorCallback;                     /* Legacy weak Error Callback */
5755
        htim->ErrorCallback                     = HAL_TIM_ErrorCallback;
5690
        break;
5756
        break;
5691
 
5757
 
5692
      default :
5758
      default :
5693
        /* Return error status */
5759
        /* Return error status */
5694
        status =  HAL_ERROR;
5760
        status =  HAL_ERROR;
Line 5698... Line 5764...
5698
  else if (htim->State == HAL_TIM_STATE_RESET)
5764
  else if (htim->State == HAL_TIM_STATE_RESET)
5699
  {
5765
  {
5700
    switch (CallbackID)
5766
    switch (CallbackID)
5701
    {
5767
    {
5702
      case HAL_TIM_BASE_MSPINIT_CB_ID :
5768
      case HAL_TIM_BASE_MSPINIT_CB_ID :
-
 
5769
        /* Legacy weak Base MspInit Callback */
5703
        htim->Base_MspInitCallback         = HAL_TIM_Base_MspInit;              /* Legacy weak Base MspInit Callback */
5770
        htim->Base_MspInitCallback         = HAL_TIM_Base_MspInit;
5704
        break;
5771
        break;
5705
 
5772
 
5706
      case HAL_TIM_BASE_MSPDEINIT_CB_ID :
5773
      case HAL_TIM_BASE_MSPDEINIT_CB_ID :
-
 
5774
        /* Legacy weak Base Msp DeInit Callback */
5707
        htim->Base_MspDeInitCallback       = HAL_TIM_Base_MspDeInit;            /* Legacy weak Base Msp DeInit Callback */
5775
        htim->Base_MspDeInitCallback       = HAL_TIM_Base_MspDeInit;
5708
        break;
5776
        break;
5709
 
5777
 
5710
      case HAL_TIM_IC_MSPINIT_CB_ID :
5778
      case HAL_TIM_IC_MSPINIT_CB_ID :
-
 
5779
        /* Legacy weak IC Msp Init Callback */
5711
        htim->IC_MspInitCallback           = HAL_TIM_IC_MspInit;                /* Legacy weak IC Msp Init Callback */
5780
        htim->IC_MspInitCallback           = HAL_TIM_IC_MspInit;
5712
        break;
5781
        break;
5713
 
5782
 
5714
      case HAL_TIM_IC_MSPDEINIT_CB_ID :
5783
      case HAL_TIM_IC_MSPDEINIT_CB_ID :
-
 
5784
        /* Legacy weak IC Msp DeInit Callback */
5715
        htim->IC_MspDeInitCallback         = HAL_TIM_IC_MspDeInit;              /* Legacy weak IC Msp DeInit Callback */
5785
        htim->IC_MspDeInitCallback         = HAL_TIM_IC_MspDeInit;
5716
        break;
5786
        break;
5717
 
5787
 
5718
      case HAL_TIM_OC_MSPINIT_CB_ID :
5788
      case HAL_TIM_OC_MSPINIT_CB_ID :
-
 
5789
        /* Legacy weak OC Msp Init Callback */
5719
        htim->OC_MspInitCallback           = HAL_TIM_OC_MspInit;                /* Legacy weak OC Msp Init Callback */
5790
        htim->OC_MspInitCallback           = HAL_TIM_OC_MspInit;
5720
        break;
5791
        break;
5721
 
5792
 
5722
      case HAL_TIM_OC_MSPDEINIT_CB_ID :
5793
      case HAL_TIM_OC_MSPDEINIT_CB_ID :
-
 
5794
        /* Legacy weak OC Msp DeInit Callback */
5723
        htim->OC_MspDeInitCallback         = HAL_TIM_OC_MspDeInit;              /* Legacy weak OC Msp DeInit Callback */
5795
        htim->OC_MspDeInitCallback         = HAL_TIM_OC_MspDeInit;
5724
        break;
5796
        break;
5725
 
5797
 
5726
      case HAL_TIM_PWM_MSPINIT_CB_ID :
5798
      case HAL_TIM_PWM_MSPINIT_CB_ID :
-
 
5799
        /* Legacy weak PWM Msp Init Callback */
5727
        htim->PWM_MspInitCallback          = HAL_TIM_PWM_MspInit;               /* Legacy weak PWM Msp Init Callback */
5800
        htim->PWM_MspInitCallback          = HAL_TIM_PWM_MspInit;
5728
        break;
5801
        break;
5729
 
5802
 
5730
      case HAL_TIM_PWM_MSPDEINIT_CB_ID :
5803
      case HAL_TIM_PWM_MSPDEINIT_CB_ID :
-
 
5804
        /* Legacy weak PWM Msp DeInit Callback */
5731
        htim->PWM_MspDeInitCallback        = HAL_TIM_PWM_MspDeInit;             /* Legacy weak PWM Msp DeInit Callback */
5805
        htim->PWM_MspDeInitCallback        = HAL_TIM_PWM_MspDeInit;
5732
        break;
5806
        break;
5733
 
5807
 
5734
      case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID :
5808
      case HAL_TIM_ONE_PULSE_MSPINIT_CB_ID :
-
 
5809
        /* Legacy weak One Pulse Msp Init Callback */
5735
        htim->OnePulse_MspInitCallback     = HAL_TIM_OnePulse_MspInit;          /* Legacy weak One Pulse Msp Init Callback */
5810
        htim->OnePulse_MspInitCallback     = HAL_TIM_OnePulse_MspInit;
5736
        break;
5811
        break;
5737
 
5812
 
5738
      case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID :
5813
      case HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID :
-
 
5814
        /* Legacy weak One Pulse Msp DeInit Callback */
5739
        htim->OnePulse_MspDeInitCallback   = HAL_TIM_OnePulse_MspDeInit;        /* Legacy weak One Pulse Msp DeInit Callback */
5815
        htim->OnePulse_MspDeInitCallback   = HAL_TIM_OnePulse_MspDeInit;
5740
        break;
5816
        break;
5741
 
5817
 
5742
      case HAL_TIM_ENCODER_MSPINIT_CB_ID :
5818
      case HAL_TIM_ENCODER_MSPINIT_CB_ID :
-
 
5819
        /* Legacy weak Encoder Msp Init Callback */
5743
        htim->Encoder_MspInitCallback      = HAL_TIM_Encoder_MspInit;           /* Legacy weak Encoder Msp Init Callback */
5820
        htim->Encoder_MspInitCallback      = HAL_TIM_Encoder_MspInit;
5744
        break;
5821
        break;
5745
 
5822
 
5746
      case HAL_TIM_ENCODER_MSPDEINIT_CB_ID :
5823
      case HAL_TIM_ENCODER_MSPDEINIT_CB_ID :
-
 
5824
        /* Legacy weak Encoder Msp DeInit Callback */
5747
        htim->Encoder_MspDeInitCallback    = HAL_TIM_Encoder_MspDeInit;         /* Legacy weak Encoder Msp DeInit Callback */
5825
        htim->Encoder_MspDeInitCallback    = HAL_TIM_Encoder_MspDeInit;
5748
        break;
5826
        break;
5749
 
5827
 
5750
      default :
5828
      default :
5751
        /* Return error status */
5829
        /* Return error status */
5752
        status =  HAL_ERROR;
5830
        status =  HAL_ERROR;
Line 5869... Line 5947...
5869
  * @retval TIM Channel state
5947
  * @retval TIM Channel state
5870
  */
5948
  */
5871
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(TIM_HandleTypeDef *htim,  uint32_t Channel)
5949
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(TIM_HandleTypeDef *htim,  uint32_t Channel)
5872
{
5950
{
5873
  HAL_TIM_ChannelStateTypeDef channel_state;
5951
  HAL_TIM_ChannelStateTypeDef channel_state;
5874
 
5952
 
5875
  /* Check the parameters */
5953
  /* Check the parameters */
5876
  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
5954
  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
5877
 
5955
 
5878
  channel_state = TIM_CHANNEL_STATE_GET(htim, Channel);
5956
  channel_state = TIM_CHANNEL_STATE_GET(htim, Channel);
5879
   
5957
 
5880
  return channel_state;
5958
  return channel_state;
5881
}
5959
}
5882
 
5960
 
5883
/**
5961
/**
5884
  * @brief  Return actual state of a DMA burst operation.
5962
  * @brief  Return actual state of a DMA burst operation.
Line 5887... Line 5965...
5887
  */
5965
  */
5888
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(TIM_HandleTypeDef *htim)
5966
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(TIM_HandleTypeDef *htim)
5889
{
5967
{
5890
  /* Check the parameters */
5968
  /* Check the parameters */
5891
  assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance));
5969
  assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance));
5892
 
5970
 
5893
  return htim->DMABurstState;
5971
  return htim->DMABurstState;
5894
}
5972
}
5895
 
5973
 
5896
/**
5974
/**
5897
  * @}
5975
  * @}
Line 5951... Line 6029...
5951
/**
6029
/**
5952
  * @brief  TIM DMA Delay Pulse complete callback.
6030
  * @brief  TIM DMA Delay Pulse complete callback.
5953
  * @param  hdma pointer to DMA handle.
6031
  * @param  hdma pointer to DMA handle.
5954
  * @retval None
6032
  * @retval None
5955
  */
6033
  */
5956
void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma)
6034
static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma)
5957
{
6035
{
5958
  TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
6036
  TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
5959
 
6037
 
5960
  if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6038
  if (hdma == htim->hdma[TIM_DMA_ID_CC1])
5961
  {
6039
  {
5962
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
6040
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
5963
   
6041
 
5964
    if (hdma->Init.Mode == DMA_NORMAL)
6042
    if (hdma->Init.Mode == DMA_NORMAL)
5965
    {
6043
    {
5966
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
6044
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
5967
    }
6045
    }
5968
  }
6046
  }
5969
  else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6047
  else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
5970
  {
6048
  {
5971
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
6049
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
5972
   
6050
 
5973
    if (hdma->Init.Mode == DMA_NORMAL)
6051
    if (hdma->Init.Mode == DMA_NORMAL)
5974
    {
6052
    {
5975
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
6053
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
5976
    }
6054
    }
5977
  }
6055
  }
5978
  else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6056
  else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
5979
  {
6057
  {
5980
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
6058
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
5981
   
6059
 
5982
    if (hdma->Init.Mode == DMA_NORMAL)
6060
    if (hdma->Init.Mode == DMA_NORMAL)
5983
    {
6061
    {
5984
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY);
6062
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY);
5985
    }
6063
    }
5986
  }
6064
  }
5987
  else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6065
  else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
5988
  {
6066
  {
5989
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
6067
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
5990
   
6068
 
5991
    if (hdma->Init.Mode == DMA_NORMAL)
6069
    if (hdma->Init.Mode == DMA_NORMAL)
5992
    {
6070
    {
5993
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY);
6071
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY);
5994
    }
6072
    }
5995
  }
6073
  }
Line 6010... Line 6088...
6010
/**
6088
/**
6011
  * @brief  TIM DMA Delay Pulse half complete callback.
6089
  * @brief  TIM DMA Delay Pulse half complete callback.
6012
  * @param  hdma pointer to DMA handle.
6090
  * @param  hdma pointer to DMA handle.
6013
  * @retval None
6091
  * @retval None
6014
  */
6092
  */
6015
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
6093
static void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
6016
{
6094
{
6017
  TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
6095
  TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
6018
 
6096
 
6019
  if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6097
  if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6020
  {
6098
  {
Line 6056... Line 6134...
6056
  TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
6134
  TIM_HandleTypeDef *htim = (TIM_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent;
6057
 
6135
 
6058
  if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6136
  if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6059
  {
6137
  {
6060
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
6138
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
6061
   
6139
 
6062
    if (hdma->Init.Mode == DMA_NORMAL)
6140
    if (hdma->Init.Mode == DMA_NORMAL)
6063
    {
6141
    {
6064
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
6142
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_1, HAL_TIM_CHANNEL_STATE_READY);
6065
    }
6143
    }
6066
  }
6144
  }
6067
  else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6145
  else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6068
  {
6146
  {
6069
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
6147
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
6070
   
6148
 
6071
    if (hdma->Init.Mode == DMA_NORMAL)
6149
    if (hdma->Init.Mode == DMA_NORMAL)
6072
    {
6150
    {
6073
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
6151
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_2, HAL_TIM_CHANNEL_STATE_READY);
6074
    }
6152
    }
6075
  }
6153
  }
6076
  else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6154
  else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6077
  {
6155
  {
6078
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
6156
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
6079
   
6157
 
6080
    if (hdma->Init.Mode == DMA_NORMAL)
6158
    if (hdma->Init.Mode == DMA_NORMAL)
6081
    {
6159
    {
6082
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY);
6160
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_3, HAL_TIM_CHANNEL_STATE_READY);
6083
    }
6161
    }
6084
  }
6162
  }
6085
  else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6163
  else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6086
  {
6164
  {
6087
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
6165
    htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
6088
   
6166
 
6089
    if (hdma->Init.Mode == DMA_NORMAL)
6167
    if (hdma->Init.Mode == DMA_NORMAL)
6090
    {
6168
    {
6091
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY);
6169
      TIM_CHANNEL_STATE_SET(htim, TIM_CHANNEL_4, HAL_TIM_CHANNEL_STATE_READY);
6092
    }
6170
    }
6093
  }
6171
  }
Line 6222... Line 6300...
6222
  * @brief  Time Base configuration
6300
  * @brief  Time Base configuration
6223
  * @param  TIMx TIM peripheral
6301
  * @param  TIMx TIM peripheral
6224
  * @param  Structure TIM Base configuration structure
6302
  * @param  Structure TIM Base configuration structure
6225
  * @retval None
6303
  * @retval None
6226
  */
6304
  */
6227
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure)
6305
static void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure)
6228
{
6306
{
6229
  uint32_t tmpcr1;
6307
  uint32_t tmpcr1;
6230
  tmpcr1 = TIMx->CR1;
6308
  tmpcr1 = TIMx->CR1;
6231
 
6309
 
6232
  /* Set TIM Time Base Unit parameters ---------------------------------------*/
6310
  /* Set TIM Time Base Unit parameters ---------------------------------------*/
Line 6936... Line 7014...
6936
  * @retval None
7014
  * @retval None
6937
  */
7015
  */
6938
void TIM_ResetCallback(TIM_HandleTypeDef *htim)
7016
void TIM_ResetCallback(TIM_HandleTypeDef *htim)
6939
{
7017
{
6940
  /* Reset the TIM callback to the legacy weak callbacks */
7018
  /* Reset the TIM callback to the legacy weak callbacks */
6941
  htim->PeriodElapsedCallback             = HAL_TIM_PeriodElapsedCallback;             /* Legacy weak PeriodElapsedCallback             */
7019
  htim->PeriodElapsedCallback             = HAL_TIM_PeriodElapsedCallback;
6942
  htim->PeriodElapsedHalfCpltCallback     = HAL_TIM_PeriodElapsedHalfCpltCallback;     /* Legacy weak PeriodElapsedHalfCpltCallback     */
7020
  htim->PeriodElapsedHalfCpltCallback     = HAL_TIM_PeriodElapsedHalfCpltCallback;
6943
  htim->TriggerCallback                   = HAL_TIM_TriggerCallback;                   /* Legacy weak TriggerCallback                   */
7021
  htim->TriggerCallback                   = HAL_TIM_TriggerCallback;
6944
  htim->TriggerHalfCpltCallback           = HAL_TIM_TriggerHalfCpltCallback;           /* Legacy weak TriggerHalfCpltCallback           */
7022
  htim->TriggerHalfCpltCallback           = HAL_TIM_TriggerHalfCpltCallback;
6945
  htim->IC_CaptureCallback                = HAL_TIM_IC_CaptureCallback;                /* Legacy weak IC_CaptureCallback                */
7023
  htim->IC_CaptureCallback                = HAL_TIM_IC_CaptureCallback;
6946
  htim->IC_CaptureHalfCpltCallback        = HAL_TIM_IC_CaptureHalfCpltCallback;        /* Legacy weak IC_CaptureHalfCpltCallback        */
7024
  htim->IC_CaptureHalfCpltCallback        = HAL_TIM_IC_CaptureHalfCpltCallback;
6947
  htim->OC_DelayElapsedCallback           = HAL_TIM_OC_DelayElapsedCallback;           /* Legacy weak OC_DelayElapsedCallback           */
7025
  htim->OC_DelayElapsedCallback           = HAL_TIM_OC_DelayElapsedCallback;
6948
  htim->PWM_PulseFinishedCallback         = HAL_TIM_PWM_PulseFinishedCallback;         /* Legacy weak PWM_PulseFinishedCallback         */
7026
  htim->PWM_PulseFinishedCallback         = HAL_TIM_PWM_PulseFinishedCallback;
6949
  htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback; /* Legacy weak PWM_PulseFinishedHalfCpltCallback */
7027
  htim->PWM_PulseFinishedHalfCpltCallback = HAL_TIM_PWM_PulseFinishedHalfCpltCallback;
6950
  htim->ErrorCallback                     = HAL_TIM_ErrorCallback;                     /* Legacy weak ErrorCallback                     */
7028
  htim->ErrorCallback                     = HAL_TIM_ErrorCallback;
6951
}
7029
}
6952
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
7030
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
6953
 
7031
 
6954
/**
7032
/**
6955
  * @}
7033
  * @}