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