PageRenderTime 23ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/ZHONX_III/ZHONX_III/Src/stm32f4xx_hal_msp.c

https://gitlab.com/BGCX261/zhonx3-svn-to-git
C | 503 lines | 249 code | 91 blank | 163 comment | 28 complexity | 6c0c4698a6e7cfe869117d8fb8f045c2 MD5 | raw file
  1. /**
  2. ******************************************************************************
  3. * File Name : stm32f4xx_hal_msp.c
  4. * Date : 19/10/2014 22:24:43
  5. * Description : This file provides code for the MSP Initialization
  6. * and de-Initialization codes.
  7. ******************************************************************************
  8. *
  9. * COPYRIGHT(c) 2014 STMicroelectronics
  10. *
  11. * Redistribution and use in source and binary forms, with or without modification,
  12. * are permitted provided that the following conditions are met:
  13. * 1. Redistributions of source code must retain the above copyright notice,
  14. * this list of conditions and the following disclaimer.
  15. * 2. Redistributions in binary form must reproduce the above copyright notice,
  16. * this list of conditions and the following disclaimer in the documentation
  17. * and/or other materials provided with the distribution.
  18. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  19. * may be used to endorse or promote products derived from this software
  20. * without specific prior written permission.
  21. *
  22. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  23. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  25. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  26. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  27. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  28. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  29. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  30. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  31. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32. *
  33. ******************************************************************************
  34. */
  35. /* Includes ------------------------------------------------------------------*/
  36. #include "stm32f4xx_hal.h"
  37. extern DMA_HandleTypeDef hdma_adc1;
  38. extern DMA_HandleTypeDef hdma_i2c1_tx;
  39. extern DMA_HandleTypeDef hdma_i2c1_rx;
  40. /* USER CODE BEGIN 0 */
  41. /* USER CODE END 0 */
  42. void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
  43. {
  44. GPIO_InitTypeDef GPIO_InitStruct;
  45. if(hadc->Instance==ADC1)
  46. {
  47. /* Peripheral clock enable */
  48. __ADC1_CLK_ENABLE();
  49. /**ADC1 GPIO Configuration
  50. PC0 ------> ADC1_IN10
  51. PC1 ------> ADC1_IN11
  52. PC2 ------> ADC1_IN12
  53. PC3 ------> ADC1_IN13
  54. PA1 ------> ADC1_IN1
  55. PA3 ------> ADC1_IN3
  56. PA4 ------> ADC1_IN4
  57. PA5 ------> ADC1_IN5
  58. PA6 ------> ADC1_IN6
  59. PA7 ------> ADC1_IN7
  60. PC4 ------> ADC1_IN14
  61. PC5 ------> ADC1_IN15
  62. */
  63. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  64. |GPIO_PIN_4|GPIO_PIN_5;
  65. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  66. GPIO_InitStruct.Pull = GPIO_NOPULL;
  67. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  68. GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
  69. |GPIO_PIN_6|GPIO_PIN_7;
  70. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  71. GPIO_InitStruct.Pull = GPIO_NOPULL;
  72. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  73. /* Peripheral DMA init*/
  74. hdma_adc1.Instance = DMA2_Stream0;
  75. hdma_adc1.Init.Channel = DMA_CHANNEL_0;
  76. hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
  77. hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
  78. hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
  79. hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
  80. hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
  81. hdma_adc1.Init.Mode = DMA_CIRCULAR;
  82. hdma_adc1.Init.Priority = DMA_PRIORITY_HIGH;
  83. hdma_adc1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
  84. HAL_DMA_Init(&hdma_adc1);
  85. __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc1);
  86. }
  87. }
  88. void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
  89. {
  90. if(hadc->Instance==ADC1)
  91. {
  92. /* Peripheral clock disable */
  93. __ADC1_CLK_DISABLE();
  94. /**ADC1 GPIO Configuration
  95. PC0 ------> ADC1_IN10
  96. PC1 ------> ADC1_IN11
  97. PC2 ------> ADC1_IN12
  98. PC3 ------> ADC1_IN13
  99. PA1 ------> ADC1_IN1
  100. PA3 ------> ADC1_IN3
  101. PA4 ------> ADC1_IN4
  102. PA5 ------> ADC1_IN5
  103. PA6 ------> ADC1_IN6
  104. PA7 ------> ADC1_IN7
  105. PC4 ------> ADC1_IN14
  106. PC5 ------> ADC1_IN15
  107. */
  108. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
  109. |GPIO_PIN_4|GPIO_PIN_5);
  110. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
  111. |GPIO_PIN_6|GPIO_PIN_7);
  112. /* Peripheral DMA DeInit*/
  113. HAL_DMA_DeInit(hadc->DMA_Handle);
  114. }
  115. }
  116. void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
  117. {
  118. GPIO_InitTypeDef GPIO_InitStruct;
  119. if(hi2c->Instance==I2C1)
  120. {
  121. /* Peripheral clock enable */
  122. __I2C1_CLK_ENABLE();
  123. /**I2C1 GPIO Configuration
  124. PB6 ------> I2C1_SCL
  125. PB7 ------> I2C1_SDA
  126. */
  127. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
  128. GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
  129. GPIO_InitStruct.Pull = GPIO_NOPULL;
  130. GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
  131. GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
  132. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  133. /* Peripheral DMA init*/
  134. hdma_i2c1_tx.Instance = DMA1_Stream6;
  135. hdma_i2c1_tx.Init.Channel = DMA_CHANNEL_1;
  136. hdma_i2c1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
  137. hdma_i2c1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
  138. hdma_i2c1_tx.Init.MemInc = DMA_MINC_ENABLE;
  139. hdma_i2c1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
  140. hdma_i2c1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
  141. hdma_i2c1_tx.Init.Mode = DMA_NORMAL;
  142. hdma_i2c1_tx.Init.Priority = DMA_PRIORITY_LOW;
  143. hdma_i2c1_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
  144. HAL_DMA_Init(&hdma_i2c1_tx);
  145. __HAL_LINKDMA(hi2c,hdmatx,hdma_i2c1_tx);
  146. hdma_i2c1_rx.Instance = DMA1_Stream5;
  147. hdma_i2c1_rx.Init.Channel = DMA_CHANNEL_1;
  148. hdma_i2c1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
  149. hdma_i2c1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
  150. hdma_i2c1_rx.Init.MemInc = DMA_MINC_ENABLE;
  151. hdma_i2c1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
  152. hdma_i2c1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
  153. hdma_i2c1_rx.Init.Mode = DMA_NORMAL;
  154. hdma_i2c1_rx.Init.Priority = DMA_PRIORITY_HIGH;
  155. hdma_i2c1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
  156. HAL_DMA_Init(&hdma_i2c1_rx);
  157. __HAL_LINKDMA(hi2c,hdmarx,hdma_i2c1_rx);
  158. /* Peripheral interrupt init*/
  159. /* Sets the priority grouping field */
  160. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
  161. HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0);
  162. HAL_NVIC_EnableIRQ(I2C1_ER_IRQn);
  163. /* Sets the priority grouping field */
  164. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
  165. HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0);
  166. HAL_NVIC_EnableIRQ(I2C1_EV_IRQn);
  167. }
  168. }
  169. void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
  170. {
  171. if(hi2c->Instance==I2C1)
  172. {
  173. /* Peripheral clock disable */
  174. __I2C1_CLK_DISABLE();
  175. /**I2C1 GPIO Configuration
  176. PB6 ------> I2C1_SCL
  177. PB7 ------> I2C1_SDA
  178. */
  179. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
  180. /* Peripheral DMA DeInit*/
  181. HAL_DMA_DeInit(hi2c->hdmatx);
  182. HAL_DMA_DeInit(hi2c->hdmarx);
  183. /* Peripheral interrupt Deinit*/
  184. HAL_NVIC_DisableIRQ(I2C1_ER_IRQn);
  185. HAL_NVIC_DisableIRQ(I2C1_EV_IRQn);
  186. }
  187. }
  188. void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
  189. {
  190. GPIO_InitTypeDef GPIO_InitStruct;
  191. if(htim_encoder->Instance==TIM1)
  192. {
  193. /* Peripheral clock enable */
  194. __TIM1_CLK_ENABLE();
  195. /**TIM1 GPIO Configuration
  196. PA8 ------> TIM1_CH1
  197. PA9 ------> TIM1_CH2
  198. */
  199. GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
  200. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  201. GPIO_InitStruct.Pull = GPIO_NOPULL;
  202. GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  203. GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
  204. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  205. /* Peripheral interrupt init*/
  206. /* Sets the priority grouping field */
  207. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
  208. HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);
  209. HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);
  210. }
  211. else if(htim_encoder->Instance==TIM3)
  212. {
  213. /* Peripheral clock enable */
  214. __TIM3_CLK_ENABLE();
  215. /**TIM3 GPIO Configuration
  216. PB4 ------> TIM3_CH1
  217. PB5 ------> TIM3_CH2
  218. */
  219. GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
  220. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  221. GPIO_InitStruct.Pull = GPIO_NOPULL;
  222. GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  223. GPIO_InitStruct.Alternate = GPIO_AF2_TIM3;
  224. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  225. /* Peripheral interrupt init*/
  226. /* Sets the priority grouping field */
  227. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
  228. HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
  229. HAL_NVIC_EnableIRQ(TIM3_IRQn);
  230. }
  231. }
  232. void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
  233. {
  234. GPIO_InitTypeDef GPIO_InitStruct;
  235. if(htim_pwm->Instance==TIM4)
  236. {
  237. /* Peripheral clock enable */
  238. __TIM4_CLK_ENABLE();
  239. /**TIM4 GPIO Configuration
  240. PB9 ------> TIM4_CH4
  241. */
  242. GPIO_InitStruct.Pin = GPIO_PIN_9;
  243. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  244. GPIO_InitStruct.Pull = GPIO_NOPULL;
  245. GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  246. GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
  247. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  248. }
  249. }
  250. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
  251. {
  252. GPIO_InitTypeDef GPIO_InitStruct;
  253. if(htim_base->Instance==TIM6)
  254. {
  255. /* Peripheral clock enable */
  256. __TIM6_CLK_ENABLE();
  257. /* Peripheral interrupt init*/
  258. /* Sets the priority grouping field */
  259. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
  260. HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 1, 2);
  261. HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
  262. }
  263. else if(htim_base->Instance==TIM7)
  264. {
  265. /* Peripheral clock enable */
  266. __TIM7_CLK_ENABLE();
  267. /* Peripheral interrupt init*/
  268. /* Sets the priority grouping field */
  269. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
  270. HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0);
  271. HAL_NVIC_EnableIRQ(TIM7_IRQn);
  272. }
  273. else if(htim_base->Instance==TIM8)
  274. {
  275. /* Peripheral clock enable */
  276. __TIM8_CLK_ENABLE();
  277. /**TIM8 GPIO Configuration
  278. PC6 ------> TIM8_CH1
  279. PC9 ------> TIM8_CH4
  280. */
  281. GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_9;
  282. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  283. GPIO_InitStruct.Pull = GPIO_NOPULL;
  284. GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
  285. GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
  286. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  287. }
  288. else if(htim_base->Instance==TIM10)
  289. {
  290. /* Peripheral clock enable */
  291. __TIM10_CLK_ENABLE();
  292. /* Peripheral interrupt init*/
  293. /* Sets the priority grouping field */
  294. HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1);
  295. HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);
  296. HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);
  297. }
  298. }
  299. void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
  300. {
  301. if(htim_encoder->Instance==TIM1)
  302. {
  303. /* Peripheral clock disable */
  304. __TIM1_CLK_DISABLE();
  305. /**TIM1 GPIO Configuration
  306. PA8 ------> TIM1_CH1
  307. PA9 ------> TIM1_CH2
  308. */
  309. HAL_GPIO_DeInit(GPIOA, GPIO_PIN_8|GPIO_PIN_9);
  310. /* Peripheral interrupt Deinit*/
  311. HAL_NVIC_DisableIRQ(TIM1_UP_TIM10_IRQn);
  312. }
  313. else if(htim_encoder->Instance==TIM3)
  314. {
  315. /* Peripheral clock disable */
  316. __TIM3_CLK_DISABLE();
  317. /**TIM3 GPIO Configuration
  318. PB4 ------> TIM3_CH1
  319. PB5 ------> TIM3_CH2
  320. */
  321. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_4|GPIO_PIN_5);
  322. /* Peripheral interrupt Deinit*/
  323. HAL_NVIC_DisableIRQ(TIM3_IRQn);
  324. }
  325. }
  326. void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
  327. {
  328. if(htim_pwm->Instance==TIM4)
  329. {
  330. /* Peripheral clock disable */
  331. __TIM4_CLK_DISABLE();
  332. /**TIM4 GPIO Configuration
  333. PB9 ------> TIM4_CH4
  334. */
  335. HAL_GPIO_DeInit(GPIOB, GPIO_PIN_9);
  336. }
  337. }
  338. void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
  339. {
  340. if(htim_base->Instance==TIM6)
  341. {
  342. /* Peripheral clock disable */
  343. __TIM6_CLK_DISABLE();
  344. /* Peripheral interrupt Deinit*/
  345. HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn);
  346. }
  347. else if(htim_base->Instance==TIM7)
  348. {
  349. /* Peripheral clock disable */
  350. __TIM7_CLK_DISABLE();
  351. /* Peripheral interrupt Deinit*/
  352. HAL_NVIC_DisableIRQ(TIM7_IRQn);
  353. }
  354. else if(htim_base->Instance==TIM8)
  355. {
  356. /* Peripheral clock disable */
  357. __TIM8_CLK_DISABLE();
  358. /**TIM8 GPIO Configuration
  359. PC6 ------> TIM8_CH1
  360. PC9 ------> TIM8_CH4
  361. */
  362. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_9);
  363. }
  364. else if(htim_base->Instance==TIM10)
  365. {
  366. /* Peripheral clock disable */
  367. __TIM10_CLK_DISABLE();
  368. /* Peripheral interrupt Deinit*/
  369. HAL_NVIC_DisableIRQ(TIM1_UP_TIM10_IRQn);
  370. }
  371. }
  372. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  373. {
  374. GPIO_InitTypeDef GPIO_InitStruct;
  375. if(huart->Instance==USART3)
  376. {
  377. /* Peripheral clock enable */
  378. __USART3_CLK_ENABLE();
  379. /**USART3 GPIO Configuration
  380. PC10 ------> USART3_TX
  381. PC11 ------> USART3_RX
  382. */
  383. GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
  384. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  385. GPIO_InitStruct.Pull = GPIO_NOPULL;
  386. GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  387. GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
  388. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  389. }
  390. }
  391. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  392. {
  393. if(huart->Instance==USART3)
  394. {
  395. /* Peripheral clock disable */
  396. __USART3_CLK_DISABLE();
  397. /**USART3 GPIO Configuration
  398. PC10 ------> USART3_TX
  399. PC11 ------> USART3_RX
  400. */
  401. HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11);
  402. }
  403. }
  404. /* USER CODE BEGIN 1 */
  405. /* USER CODE END 1 */
  406. /**
  407. * @}
  408. */
  409. /**
  410. * @}
  411. */
  412. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/