77 __HAL_RCC_SYSCFG_CLK_ENABLE();
78 __HAL_RCC_PWR_CLK_ENABLE();
95 GPIO_InitTypeDef GPIO_InitStruct = {0};
96 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
97 if(hi2c->Instance==I2C2)
104 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
105 PeriphClkInit.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
106 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
111 __HAL_RCC_GPIOB_CLK_ENABLE();
117 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
118 GPIO_InitStruct.Pull = GPIO_PULLUP;
119 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
120 GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
121 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
124 __HAL_RCC_I2C2_CLK_ENABLE();
126 HAL_NVIC_SetPriority(I2C2_EV_IRQn, 0, 0);
127 HAL_NVIC_EnableIRQ(I2C2_EV_IRQn);
143 if(hi2c->Instance==I2C2)
149 __HAL_RCC_I2C2_CLK_DISABLE();
160 HAL_NVIC_DisableIRQ(I2C2_EV_IRQn);
176 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
177 if(
hrtc->Instance==RTC)
184 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC;
185 PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
186 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
192 __HAL_RCC_RTC_ENABLE();
194 HAL_NVIC_SetPriority(RTC_WKUP_IRQn, 0, 0);
195 HAL_NVIC_EnableIRQ(RTC_WKUP_IRQn);
196 HAL_NVIC_SetPriority(RTC_Alarm_IRQn, 0, 0);
197 HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn);
213 if(
hrtc->Instance==RTC)
219 __HAL_RCC_RTC_DISABLE();
222 HAL_NVIC_DisableIRQ(RTC_WKUP_IRQn);
223 HAL_NVIC_DisableIRQ(RTC_Alarm_IRQn);
239 GPIO_InitTypeDef GPIO_InitStruct = {0};
240 if(hspi->Instance==SPI1)
246 __HAL_RCC_SPI1_CLK_ENABLE();
248 __HAL_RCC_GPIOA_CLK_ENABLE();
255 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
256 GPIO_InitStruct.Pull = GPIO_NOPULL;
257 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
258 GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
259 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
268 hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
269 hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
285 hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
286 hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
311 if(hspi->Instance==SPI1)
317 __HAL_RCC_SPI1_CLK_DISABLE();
327 HAL_DMA_DeInit(hspi->hdmarx);
328 HAL_DMA_DeInit(hspi->hdmatx);
344 GPIO_InitTypeDef GPIO_InitStruct = {0};
345 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
346 if(huart->Instance==USART1)
353 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
354 PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
355 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
361 __HAL_RCC_USART1_CLK_ENABLE();
363 __HAL_RCC_GPIOA_CLK_ENABLE();
369 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
370 GPIO_InitStruct.Pull = GPIO_NOPULL;
371 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
372 GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
373 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
379 else if(huart->Instance==USART2)
387 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;
388 PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
389 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
395 __HAL_RCC_USART2_CLK_ENABLE();
397 __HAL_RCC_GPIOA_CLK_ENABLE();
405 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
406 GPIO_InitStruct.Pull = GPIO_NOPULL;
407 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
408 GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
409 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
447 HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
448 HAL_NVIC_EnableIRQ(USART2_IRQn);
464 if(huart->Instance==USART1)
470 __HAL_RCC_USART1_CLK_DISABLE();
482 else if(huart->Instance==USART2)
488 __HAL_RCC_USART2_CLK_DISABLE();
499 HAL_DMA_DeInit(huart->hdmarx);
500 HAL_DMA_DeInit(huart->hdmatx);
503 HAL_NVIC_DisableIRQ(USART2_IRQn);