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 | * @} |