STM32L4xx_HAL_Driver  1.14.0

TIM PWM functions. More...

Functions

HAL_StatusTypeDef HAL_TIM_PWM_Init (TIM_HandleTypeDef *htim)
 Initializes the TIM PWM Time Base according to the specified parameters in the TIM_HandleTypeDef and initializes the associated handle. More...
 
HAL_StatusTypeDef HAL_TIM_PWM_DeInit (TIM_HandleTypeDef *htim)
 DeInitializes the TIM peripheral. More...
 
void HAL_TIM_PWM_MspInit (TIM_HandleTypeDef *htim)
 Initializes the TIM PWM MSP. More...
 
void HAL_TIM_PWM_MspDeInit (TIM_HandleTypeDef *htim)
 DeInitializes TIM PWM MSP. More...
 
HAL_StatusTypeDef HAL_TIM_PWM_Start (TIM_HandleTypeDef *htim, uint32_t Channel)
 Starts the PWM signal generation. More...
 
HAL_StatusTypeDef HAL_TIM_PWM_Stop (TIM_HandleTypeDef *htim, uint32_t Channel)
 Stops the PWM signal generation. More...
 
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT (TIM_HandleTypeDef *htim, uint32_t Channel)
 Starts the PWM signal generation in interrupt mode. More...
 
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT (TIM_HandleTypeDef *htim, uint32_t Channel)
 Stops the PWM signal generation in interrupt mode. More...
 
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA (TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
 Starts the TIM PWM signal generation in DMA mode. More...
 
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA (TIM_HandleTypeDef *htim, uint32_t Channel)
 Stops the TIM PWM signal generation in DMA mode. More...
 

Detailed Description

TIM PWM functions.

  ==============================================================================
                          ##### TIM PWM functions #####
  ==============================================================================
  [..]
    This section provides functions allowing to:
    (+) Initialize and configure the TIM PWM.
    (+) De-initialize the TIM PWM.
    (+) Start the TIM PWM.
    (+) Stop the TIM PWM.
    (+) Start the TIM PWM and enable interrupt.
    (+) Stop the TIM PWM and disable interrupt.
    (+) Start the TIM PWM and enable DMA transfer.
    (+) Stop the TIM PWM and disable DMA transfer.

Function Documentation

◆ HAL_TIM_PWM_DeInit()

HAL_StatusTypeDef HAL_TIM_PWM_DeInit ( TIM_HandleTypeDef htim)

DeInitializes the TIM peripheral.

Parameters
htimTIM PWM handle
Return values
HALstatus

Definition at line 1229 of file stm32l4xx_hal_tim.c.

1230 {
1231  /* Check the parameters */
1232  assert_param(IS_TIM_INSTANCE(htim->Instance));
1233 
1234  htim->State = HAL_TIM_STATE_BUSY;
1235 
1236  /* Disable the TIM Peripheral Clock */
1237  __HAL_TIM_DISABLE(htim);
1238 
1239 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1240  if (htim->PWM_MspDeInitCallback == NULL)
1241  {
1242  htim->PWM_MspDeInitCallback = HAL_TIM_PWM_MspDeInit;
1243  }
1244  /* DeInit the low level hardware */
1245  htim->PWM_MspDeInitCallback(htim);
1246 #else
1247  /* DeInit the low level hardware: GPIO, CLOCK, NVIC and DMA */
1248  HAL_TIM_PWM_MspDeInit(htim);
1249 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
1250 
1251  /* Change TIM state */
1252  htim->State = HAL_TIM_STATE_RESET;
1253 
1254  /* Release Lock */
1255  __HAL_UNLOCK(htim);
1256 
1257  return HAL_OK;
1258 }
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM PWM MSP.
__HAL_UNLOCK(hrtc)
return HAL_OK
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_TIM_PWM_Init()

HAL_StatusTypeDef HAL_TIM_PWM_Init ( TIM_HandleTypeDef htim)

Initializes the TIM PWM Time Base according to the specified parameters in the TIM_HandleTypeDef and initializes the associated handle.

Note
Switching from Center Aligned counter mode to Edge counter mode (or reverse) requires a timer reset to avoid unexpected direction due to DIR bit readonly in center aligned mode. Ex: call HAL_TIM_PWM_DeInit() before HAL_TIM_PWM_Init()
Parameters
htimTIM PWM handle
Return values
HALstatus

Definition at line 1177 of file stm32l4xx_hal_tim.c.

1178 {
1179  /* Check the TIM handle allocation */
1180  if (htim == NULL)
1181  {
1182  return HAL_ERROR;
1183  }
1184 
1185  /* Check the parameters */
1186  assert_param(IS_TIM_INSTANCE(htim->Instance));
1187  assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
1188  assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
1189  assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
1190 
1191  if (htim->State == HAL_TIM_STATE_RESET)
1192  {
1193  /* Allocate lock resource and initialize it */
1194  htim->Lock = HAL_UNLOCKED;
1195 
1196 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1197  /* Reset interrupt callbacks to legacy weak callbacks */
1198  TIM_ResetCallback(htim);
1199 
1200  if (htim->PWM_MspInitCallback == NULL)
1201  {
1202  htim->PWM_MspInitCallback = HAL_TIM_PWM_MspInit;
1203  }
1204  /* Init the low level hardware : GPIO, CLOCK, NVIC */
1205  htim->PWM_MspInitCallback(htim);
1206 #else
1207  /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */
1208  HAL_TIM_PWM_MspInit(htim);
1209 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
1210  }
1211 
1212  /* Set the TIM state */
1213  htim->State = HAL_TIM_STATE_BUSY;
1214 
1215  /* Init the base time for the PWM */
1216  TIM_Base_SetConfig(htim->Instance, &htim->Init);
1217 
1218  /* Initialize the TIM state*/
1219  htim->State = HAL_TIM_STATE_READY;
1220 
1221  return HAL_OK;
1222 }
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure)
Time Base configuration.
void TIM_ResetCallback(TIM_HandleTypeDef *htim)
Reset interrupt callbacks to the legacy weak callbacks.
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM PWM MSP.
return HAL_OK
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_TIM_PWM_MspDeInit()

__weak void HAL_TIM_PWM_MspDeInit ( TIM_HandleTypeDef htim)

DeInitializes TIM PWM MSP.

Parameters
htimTIM PWM handle
Return values
None

Definition at line 1280 of file stm32l4xx_hal_tim.c.

1281 {
1282  /* Prevent unused argument(s) compilation warning */
1283  UNUSED(htim);
1284 
1285  /* NOTE : This function should not be modified, when the callback is needed,
1286  the HAL_TIM_PWM_MspDeInit could be implemented in the user file
1287  */
1288 }

◆ HAL_TIM_PWM_MspInit()

__weak void HAL_TIM_PWM_MspInit ( TIM_HandleTypeDef htim)

Initializes the TIM PWM MSP.

Parameters
htimTIM PWM handle
Return values
None

Definition at line 1265 of file stm32l4xx_hal_tim.c.

1266 {
1267  /* Prevent unused argument(s) compilation warning */
1268  UNUSED(htim);
1269 
1270  /* NOTE : This function should not be modified, when the callback is needed,
1271  the HAL_TIM_PWM_MspInit could be implemented in the user file
1272  */
1273 }

◆ HAL_TIM_PWM_Start()

HAL_StatusTypeDef HAL_TIM_PWM_Start ( TIM_HandleTypeDef htim,
uint32_t  Channel 
)

Starts the PWM signal generation.

Parameters
htimTIM handle
ChannelTIM Channels to be enabled This parameter can be one of the following values:
  • TIM_CHANNEL_1: TIM Channel 1 selected
  • TIM_CHANNEL_2: TIM Channel 2 selected
  • TIM_CHANNEL_3: TIM Channel 3 selected
  • TIM_CHANNEL_4: TIM Channel 4 selected
  • TIM_CHANNEL_5: TIM Channel 5 selected
  • TIM_CHANNEL_6: TIM Channel 6 selected
Return values
HALstatus

Definition at line 1303 of file stm32l4xx_hal_tim.c.

1304 {
1305  uint32_t tmpsmcr;
1306 
1307  /* Check the parameters */
1308  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1309 
1310  /* Enable the Capture compare channel */
1311  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);
1312 
1313  if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1314  {
1315  /* Enable the main output */
1316  __HAL_TIM_MOE_ENABLE(htim);
1317  }
1318 
1319  /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
1320  tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1321  if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1322  {
1323  __HAL_TIM_ENABLE(htim);
1324  }
1325 
1326  /* Return function status */
1327  return HAL_OK;
1328 }
return HAL_OK
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_TIM_PWM_Start_DMA()

HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA ( TIM_HandleTypeDef htim,
uint32_t  Channel,
uint32_t *  pData,
uint16_t  Length 
)

Starts the TIM PWM signal generation in DMA mode.

Parameters
htimTIM PWM handle
ChannelTIM Channels to be enabled This parameter can be one of the following values:
  • TIM_CHANNEL_1: TIM Channel 1 selected
  • TIM_CHANNEL_2: TIM Channel 2 selected
  • TIM_CHANNEL_3: TIM Channel 3 selected
  • TIM_CHANNEL_4: TIM Channel 4 selected
pDataThe source Buffer address.
LengthThe length of data to be transferred from memory to TIM peripheral
Return values
HALstatus

Definition at line 1517 of file stm32l4xx_hal_tim.c.

1518 {
1519  uint32_t tmpsmcr;
1520 
1521  /* Check the parameters */
1522  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1523 
1524  if ((htim->State == HAL_TIM_STATE_BUSY))
1525  {
1526  return HAL_BUSY;
1527  }
1528  else if ((htim->State == HAL_TIM_STATE_READY))
1529  {
1530  if ((pData == NULL) && (Length > 0U))
1531  {
1532  return HAL_ERROR;
1533  }
1534  else
1535  {
1536  htim->State = HAL_TIM_STATE_BUSY;
1537  }
1538  }
1539  else
1540  {
1541  /* nothing to do */
1542  }
1543 
1544  switch (Channel)
1545  {
1546  case TIM_CHANNEL_1:
1547  {
1548  /* Set the DMA compare callbacks */
1549  htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt;
1550  htim->hdma[TIM_DMA_ID_CC1]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt;
1551 
1552  /* Set the DMA error callback */
1553  htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback = TIM_DMAError ;
1554 
1555  /* Enable the DMA channel */
1556  if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, Length) != HAL_OK)
1557  {
1558  return HAL_ERROR;
1559  }
1560 
1561  /* Enable the TIM Capture/Compare 1 DMA request */
1562  __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
1563  break;
1564  }
1565 
1566  case TIM_CHANNEL_2:
1567  {
1568  /* Set the DMA compare callbacks */
1569  htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt;
1570  htim->hdma[TIM_DMA_ID_CC2]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt;
1571 
1572  /* Set the DMA error callback */
1573  htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback = TIM_DMAError ;
1574 
1575  /* Enable the DMA channel */
1576  if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, Length) != HAL_OK)
1577  {
1578  return HAL_ERROR;
1579  }
1580  /* Enable the TIM Capture/Compare 2 DMA request */
1581  __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1582  break;
1583  }
1584 
1585  case TIM_CHANNEL_3:
1586  {
1587  /* Set the DMA compare callbacks */
1588  htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt;
1589  htim->hdma[TIM_DMA_ID_CC3]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt;
1590 
1591  /* Set the DMA error callback */
1592  htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError ;
1593 
1594  /* Enable the DMA channel */
1595  if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, Length) != HAL_OK)
1596  {
1597  return HAL_ERROR;
1598  }
1599  /* Enable the TIM Output Capture/Compare 3 request */
1600  __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1601  break;
1602  }
1603 
1604  case TIM_CHANNEL_4:
1605  {
1606  /* Set the DMA compare callbacks */
1607  htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt;
1608  htim->hdma[TIM_DMA_ID_CC4]->XferHalfCpltCallback = TIM_DMADelayPulseHalfCplt;
1609 
1610  /* Set the DMA error callback */
1611  htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback = TIM_DMAError ;
1612 
1613  /* Enable the DMA channel */
1614  if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, Length) != HAL_OK)
1615  {
1616  return HAL_ERROR;
1617  }
1618  /* Enable the TIM Capture/Compare 4 DMA request */
1619  __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1620  break;
1621  }
1622 
1623  default:
1624  break;
1625  }
1626 
1627  /* Enable the Capture compare channel */
1628  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);
1629 
1630  if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1631  {
1632  /* Enable the main output */
1633  __HAL_TIM_MOE_ENABLE(htim);
1634  }
1635 
1636  /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
1637  tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1638  if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1639  {
1640  __HAL_TIM_ENABLE(htim);
1641  }
1642 
1643  /* Return function status */
1644  return HAL_OK;
1645 }
void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma)
TIM DMA Delay Pulse complete callback.
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Delay Pulse half complete callback.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
void TIM_DMAError(DMA_HandleTypeDef *hdma)
TIM DMA error callback.
return HAL_OK
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_TIM_PWM_Start_IT()

HAL_StatusTypeDef HAL_TIM_PWM_Start_IT ( TIM_HandleTypeDef htim,
uint32_t  Channel 
)

Starts the PWM signal generation in interrupt mode.

Parameters
htimTIM PWM handle
ChannelTIM Channel to be enabled This parameter can be one of the following values:
  • TIM_CHANNEL_1: TIM Channel 1 selected
  • TIM_CHANNEL_2: TIM Channel 2 selected
  • TIM_CHANNEL_3: TIM Channel 3 selected
  • TIM_CHANNEL_4: TIM Channel 4 selected
Return values
HALstatus

Definition at line 1378 of file stm32l4xx_hal_tim.c.

1379 {
1380  uint32_t tmpsmcr;
1381  /* Check the parameters */
1382  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1383 
1384  switch (Channel)
1385  {
1386  case TIM_CHANNEL_1:
1387  {
1388  /* Enable the TIM Capture/Compare 1 interrupt */
1389  __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
1390  break;
1391  }
1392 
1393  case TIM_CHANNEL_2:
1394  {
1395  /* Enable the TIM Capture/Compare 2 interrupt */
1396  __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
1397  break;
1398  }
1399 
1400  case TIM_CHANNEL_3:
1401  {
1402  /* Enable the TIM Capture/Compare 3 interrupt */
1403  __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3);
1404  break;
1405  }
1406 
1407  case TIM_CHANNEL_4:
1408  {
1409  /* Enable the TIM Capture/Compare 4 interrupt */
1410  __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4);
1411  break;
1412  }
1413 
1414  default:
1415  break;
1416  }
1417 
1418  /* Enable the Capture compare channel */
1419  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);
1420 
1421  if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1422  {
1423  /* Enable the main output */
1424  __HAL_TIM_MOE_ENABLE(htim);
1425  }
1426 
1427  /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
1428  tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1429  if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1430  {
1431  __HAL_TIM_ENABLE(htim);
1432  }
1433 
1434  /* Return function status */
1435  return HAL_OK;
1436 }
return HAL_OK
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_TIM_PWM_Stop()

HAL_StatusTypeDef HAL_TIM_PWM_Stop ( TIM_HandleTypeDef htim,
uint32_t  Channel 
)

Stops the PWM signal generation.

Parameters
htimTIM PWM handle
ChannelTIM Channels to be disabled This parameter can be one of the following values:
  • TIM_CHANNEL_1: TIM Channel 1 selected
  • TIM_CHANNEL_2: TIM Channel 2 selected
  • TIM_CHANNEL_3: TIM Channel 3 selected
  • TIM_CHANNEL_4: TIM Channel 4 selected
  • TIM_CHANNEL_5: TIM Channel 5 selected
  • TIM_CHANNEL_6: TIM Channel 6 selected
Return values
HALstatus

Definition at line 1343 of file stm32l4xx_hal_tim.c.

1344 {
1345  /* Check the parameters */
1346  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1347 
1348  /* Disable the Capture compare channel */
1349  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE);
1350 
1351  if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1352  {
1353  /* Disable the Main Output */
1354  __HAL_TIM_MOE_DISABLE(htim);
1355  }
1356 
1357  /* Disable the Peripheral */
1358  __HAL_TIM_DISABLE(htim);
1359 
1360  /* Change the htim state */
1361  htim->State = HAL_TIM_STATE_READY;
1362 
1363  /* Return function status */
1364  return HAL_OK;
1365 }
return HAL_OK
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_TIM_PWM_Stop_DMA()

HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA ( TIM_HandleTypeDef htim,
uint32_t  Channel 
)

Stops the TIM PWM signal generation in DMA mode.

Parameters
htimTIM PWM handle
ChannelTIM Channels to be disabled This parameter can be one of the following values:
  • TIM_CHANNEL_1: TIM Channel 1 selected
  • TIM_CHANNEL_2: TIM Channel 2 selected
  • TIM_CHANNEL_3: TIM Channel 3 selected
  • TIM_CHANNEL_4: TIM Channel 4 selected
Return values
HALstatus

Definition at line 1658 of file stm32l4xx_hal_tim.c.

1659 {
1660  /* Check the parameters */
1661  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1662 
1663  switch (Channel)
1664  {
1665  case TIM_CHANNEL_1:
1666  {
1667  /* Disable the TIM Capture/Compare 1 DMA request */
1668  __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
1669  (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC1]);
1670  break;
1671  }
1672 
1673  case TIM_CHANNEL_2:
1674  {
1675  /* Disable the TIM Capture/Compare 2 DMA request */
1676  __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
1677  (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC2]);
1678  break;
1679  }
1680 
1681  case TIM_CHANNEL_3:
1682  {
1683  /* Disable the TIM Capture/Compare 3 DMA request */
1684  __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3);
1685  (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC3]);
1686  break;
1687  }
1688 
1689  case TIM_CHANNEL_4:
1690  {
1691  /* Disable the TIM Capture/Compare 4 interrupt */
1692  __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4);
1693  (void)HAL_DMA_Abort_IT(htim->hdma[TIM_DMA_ID_CC4]);
1694  break;
1695  }
1696 
1697  default:
1698  break;
1699  }
1700 
1701  /* Disable the Capture compare channel */
1702  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE);
1703 
1704  if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1705  {
1706  /* Disable the Main Output */
1707  __HAL_TIM_MOE_DISABLE(htim);
1708  }
1709 
1710  /* Disable the Peripheral */
1711  __HAL_TIM_DISABLE(htim);
1712 
1713  /* Change the htim state */
1714  htim->State = HAL_TIM_STATE_READY;
1715 
1716  /* Return function status */
1717  return HAL_OK;
1718 }
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
return HAL_OK
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_TIM_PWM_Stop_IT()

HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT ( TIM_HandleTypeDef htim,
uint32_t  Channel 
)

Stops the PWM signal generation in interrupt mode.

Parameters
htimTIM PWM handle
ChannelTIM Channels to be disabled This parameter can be one of the following values:
  • TIM_CHANNEL_1: TIM Channel 1 selected
  • TIM_CHANNEL_2: TIM Channel 2 selected
  • TIM_CHANNEL_3: TIM Channel 3 selected
  • TIM_CHANNEL_4: TIM Channel 4 selected
Return values
HALstatus

Definition at line 1449 of file stm32l4xx_hal_tim.c.

1450 {
1451  /* Check the parameters */
1452  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1453 
1454  switch (Channel)
1455  {
1456  case TIM_CHANNEL_1:
1457  {
1458  /* Disable the TIM Capture/Compare 1 interrupt */
1459  __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
1460  break;
1461  }
1462 
1463  case TIM_CHANNEL_2:
1464  {
1465  /* Disable the TIM Capture/Compare 2 interrupt */
1466  __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
1467  break;
1468  }
1469 
1470  case TIM_CHANNEL_3:
1471  {
1472  /* Disable the TIM Capture/Compare 3 interrupt */
1473  __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3);
1474  break;
1475  }
1476 
1477  case TIM_CHANNEL_4:
1478  {
1479  /* Disable the TIM Capture/Compare 4 interrupt */
1480  __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4);
1481  break;
1482  }
1483 
1484  default:
1485  break;
1486  }
1487 
1488  /* Disable the Capture compare channel */
1489  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_DISABLE);
1490 
1491  if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1492  {
1493  /* Disable the Main Output */
1494  __HAL_TIM_MOE_DISABLE(htim);
1495  }
1496 
1497  /* Disable the Peripheral */
1498  __HAL_TIM_DISABLE(htim);
1499 
1500  /* Return function status */
1501  return HAL_OK;
1502 }
return HAL_OK
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))