void serial_free(serial_t *obj) { struct serial_s *obj_s = SERIAL_S(obj); // Reset UART and disable clock if (obj_s->uart == UART_1) { __USART1_FORCE_RESET(); __USART1_RELEASE_RESET(); __USART1_CLK_DISABLE(); } if (obj_s->uart == UART_2) { __USART2_FORCE_RESET(); __USART2_RELEASE_RESET(); __USART2_CLK_DISABLE(); } #if defined(USART3_BASE) if (obj_s->uart == UART_3) { __USART3_FORCE_RESET(); __USART3_RELEASE_RESET(); __USART3_CLK_DISABLE(); } #endif #if defined(UART4_BASE) if (obj_s->uart == UART_4) { __UART4_FORCE_RESET(); __UART4_RELEASE_RESET(); __UART4_CLK_DISABLE(); } #endif #if defined(UART5_BASE) if (obj_s->uart == UART_5) { __UART5_FORCE_RESET(); __UART5_RELEASE_RESET(); __UART5_CLK_DISABLE(); } #endif // Configure GPIOs pin_function(obj_s->pin_tx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); pin_function(obj_s->pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); serial_irq_ids[obj_s->index] = 0; }
void serial_free(serial_t *obj) { // Reset UART and disable clock switch (obj->uart) { case UART_1: __USART1_FORCE_RESET(); __USART1_RELEASE_RESET(); __USART1_CLK_DISABLE(); break; case UART_2: __USART2_FORCE_RESET(); __USART2_RELEASE_RESET(); __USART2_CLK_DISABLE(); break; case UART_3: __USART3_FORCE_RESET(); __USART3_RELEASE_RESET(); __USART3_CLK_DISABLE(); break; case UART_4: __UART4_FORCE_RESET(); __UART4_RELEASE_RESET(); __UART4_CLK_DISABLE(); break; case UART_5: __UART5_FORCE_RESET(); __UART5_RELEASE_RESET(); __UART5_CLK_DISABLE(); break; case UART_6: __USART6_FORCE_RESET(); __USART6_RELEASE_RESET(); __USART6_CLK_DISABLE(); break; } // Configure GPIOs pin_function(obj->pin_tx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); pin_function(obj->pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); serial_irq_ids[obj->index] = 0; }
void serial_free(serial_t *obj) { // Reset UART and disable clock switch (SERIAL_OBJ(uart)) { case UART_1: __USART1_FORCE_RESET(); __USART1_RELEASE_RESET(); __USART1_CLK_DISABLE(); break; case UART_2: __USART2_FORCE_RESET(); __USART2_RELEASE_RESET(); __USART2_CLK_DISABLE(); break; #if defined(USART3_BASE) case UART_3: __USART3_FORCE_RESET(); __USART3_RELEASE_RESET(); __USART3_CLK_DISABLE(); break; #endif #if defined(UART4_BASE) case UART_4: __UART4_FORCE_RESET(); __UART4_RELEASE_RESET(); __UART4_CLK_DISABLE(); #if DEVICE_SERIAL_ASYNCH_DMA __HAL_RCC_DMA1_CLK_DISABLE(); #endif break; #endif #if defined(UART5_BASE) case UART_5: __UART5_FORCE_RESET(); __UART5_RELEASE_RESET(); __UART5_CLK_DISABLE(); break; #endif #if defined(USART6_BASE) case UART_6: __USART6_FORCE_RESET(); __USART6_RELEASE_RESET(); __USART6_CLK_DISABLE(); break; #endif #if defined(UART7_BASE) case UART_7: __UART7_FORCE_RESET(); __UART7_RELEASE_RESET(); __UART7_CLK_DISABLE(); break; #endif #if defined(UART8_BASE) case UART_8: __UART8_FORCE_RESET(); __UART8_RELEASE_RESET(); __UART8_CLK_DISABLE(); break; #endif } // Configure GPIOs pin_function(SERIAL_OBJ(pin_tx), STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); pin_function(SERIAL_OBJ(pin_rx), STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); serial_irq_ids[SERIAL_OBJ(index)] = 0; }
void serial_free(serial_t *obj) { struct serial_s *obj_s = SERIAL_S(obj); // Reset UART and disable clock switch (obj_s->index) { case 0: __USART1_FORCE_RESET(); __USART1_RELEASE_RESET(); __USART1_CLK_DISABLE(); break; case 1: __USART2_FORCE_RESET(); __USART2_RELEASE_RESET(); __USART2_CLK_DISABLE(); break; #if defined(USART3_BASE) case 2: __USART3_FORCE_RESET(); __USART3_RELEASE_RESET(); __USART3_CLK_DISABLE(); break; #endif #if defined(UART4_BASE) case 3: __UART4_FORCE_RESET(); __UART4_RELEASE_RESET(); __UART4_CLK_DISABLE(); break; #endif #if defined(UART5_BASE) case 4: __UART5_FORCE_RESET(); __UART5_RELEASE_RESET(); __UART5_CLK_DISABLE(); break; #endif #if defined(USART6_BASE) case 5: __USART6_FORCE_RESET(); __USART6_RELEASE_RESET(); __USART6_CLK_DISABLE(); break; #endif #if defined(UART7_BASE) case 6: __UART7_FORCE_RESET(); __UART7_RELEASE_RESET(); __UART7_CLK_DISABLE(); break; #endif #if defined(UART8_BASE) case 7: __UART8_FORCE_RESET(); __UART8_RELEASE_RESET(); __UART8_CLK_DISABLE(); break; #endif } // Configure GPIOs pin_function(obj_s->pin_tx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); pin_function(obj_s->pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); serial_irq_ids[obj_s->index] = 0; }
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) { if(huart->Instance==UART4) { /* USER CODE BEGIN UART4_MspDeInit 0 */ /* USER CODE END UART4_MspDeInit 0 */ /* Peripheral clock disable */ __UART4_CLK_DISABLE(); /**UART4 GPIO Configuration PC10 ------> UART4_TX PC11 ------> UART4_RX */ HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11); /* USER CODE BEGIN UART4_MspDeInit 1 */ /* USER CODE END UART4_MspDeInit 1 */ } else if(huart->Instance==UART5) { /* USER CODE BEGIN UART5_MspDeInit 0 */ /* USER CODE END UART5_MspDeInit 0 */ /* Peripheral clock disable */ __UART5_CLK_DISABLE(); /**UART5 GPIO Configuration PC12 ------> UART5_TX PD2 ------> UART5_RX */ HAL_GPIO_DeInit(GPIOC, GPIO_PIN_12); HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2); /* USER CODE BEGIN UART5_MspDeInit 1 */ /* USER CODE END UART5_MspDeInit 1 */ } else if(huart->Instance==USART2) { /* USER CODE BEGIN USART2_MspDeInit 0 */ /* USER CODE END USART2_MspDeInit 0 */ /* Peripheral clock disable */ __USART2_CLK_DISABLE(); /**USART2 GPIO Configuration PA2 ------> USART2_TX PA3 ------> USART2_RX */ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3); /* USER CODE BEGIN USART2_MspDeInit 1 */ /* USER CODE END USART2_MspDeInit 1 */ } else if(huart->Instance==USART3) { /* USER CODE BEGIN USART3_MspDeInit 0 */ /* USER CODE END USART3_MspDeInit 0 */ /* Peripheral clock disable */ __USART3_CLK_DISABLE(); /**USART3 GPIO Configuration PE15 ------> USART3_RX PB10 ------> USART3_TX */ HAL_GPIO_DeInit(GPIOE, GPIO_PIN_15); HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10); /* USER CODE BEGIN USART3_MspDeInit 1 */ /* USER CODE END USART3_MspDeInit 1 */ } }
void serial_free(serial_t *obj) { // Reset UART and disable clock switch (SERIAL_OBJ(index)) { case 0: __USART1_FORCE_RESET(); __USART1_RELEASE_RESET(); __USART1_CLK_DISABLE(); break; case 1: __USART2_FORCE_RESET(); __USART2_RELEASE_RESET(); __USART2_CLK_DISABLE(); #if DEVICE_SERIAL_ASYNCH_DMA __HAL_RCC_DMA1_CLK_DISABLE(); #endif break; #if defined(USART3_BASE) case 2: __USART3_FORCE_RESET(); __USART3_RELEASE_RESET(); __USART3_CLK_DISABLE(); break; #endif #if defined(UART4_BASE) case 3: __UART4_FORCE_RESET(); __UART4_RELEASE_RESET(); __UART4_CLK_DISABLE(); #if DEVICE_SERIAL_ASYNCH_DMA __HAL_RCC_DMA1_CLK_DISABLE(); #endif break; #endif #if defined(UART5_BASE) case 4: __UART5_FORCE_RESET(); __UART5_RELEASE_RESET(); __UART5_CLK_DISABLE(); break; #endif #if defined(USART6_BASE) case 5: __USART6_FORCE_RESET(); __USART6_RELEASE_RESET(); __USART6_CLK_DISABLE(); break; #endif #if defined(UART7_BASE) case 6: __UART7_FORCE_RESET(); __UART7_RELEASE_RESET(); __UART7_CLK_DISABLE(); break; #endif #if defined(UART8_BASE) case 7: __UART8_FORCE_RESET(); __UART8_RELEASE_RESET(); __UART8_CLK_DISABLE(); break; #endif } // Configure GPIOs pin_function(SERIAL_OBJ(pin_tx), STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); pin_function(SERIAL_OBJ(pin_rx), STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); serial_irq_ids[SERIAL_OBJ(index)] = 0; DEBUG_PRINTF("UART%u: Free\n", obj->serial.module+1); }
void serial_free(serial_t *obj) { // Reset UART and disable clock switch (obj->serial.module) { case 0: __USART1_FORCE_RESET(); __USART1_RELEASE_RESET(); __USART1_CLK_DISABLE(); break; case 1: __USART2_FORCE_RESET(); __USART2_RELEASE_RESET(); __USART2_CLK_DISABLE(); break; #if defined(USART3_BASE) case 2: __USART3_FORCE_RESET(); __USART3_RELEASE_RESET(); __USART3_CLK_DISABLE(); break; #endif #if defined(UART4_BASE) case 3: __UART4_FORCE_RESET(); __UART4_RELEASE_RESET(); __UART4_CLK_DISABLE(); break; #endif #if defined(UART5_BASE) case 4: __UART5_FORCE_RESET(); __UART5_RELEASE_RESET(); __UART5_CLK_DISABLE(); break; #endif case 5: __USART6_FORCE_RESET(); __USART6_RELEASE_RESET(); __USART6_CLK_DISABLE(); break; #if defined(UART7_BASE) case 6: __UART7_FORCE_RESET(); __UART7_RELEASE_RESET(); __UART7_CLK_DISABLE(); break; #endif #if defined(UART8_BASE) case 7: __UART8_FORCE_RESET(); __UART8_RELEASE_RESET(); __UART8_CLK_DISABLE(); break; #endif } // Configure GPIOs pin_function(obj->serial.pin_tx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); pin_function(obj->serial.pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0)); DEBUG_PRINTF("UART%u: Free\n", obj->serial.module+1); }