mirror of https://github.com/ARMmbed/mbed-os.git
STM32 serial: move init_uart function at the end of file
parent
cf5065c312
commit
0efd33f010
|
@ -38,6 +38,9 @@ serial_t stdio_uart;
|
||||||
extern UART_HandleTypeDef uart_handlers[];
|
extern UART_HandleTypeDef uart_handlers[];
|
||||||
extern uint32_t serial_irq_ids[];
|
extern uint32_t serial_irq_ids[];
|
||||||
|
|
||||||
|
// Utility functions
|
||||||
|
HAL_StatusTypeDef init_uart(serial_t *obj);
|
||||||
|
|
||||||
void serial_init(serial_t *obj, PinName tx, PinName rx)
|
void serial_init(serial_t *obj, PinName tx, PinName rx)
|
||||||
{
|
{
|
||||||
struct serial_s *obj_s = SERIAL_S(obj);
|
struct serial_s *obj_s = SERIAL_S(obj);
|
||||||
|
@ -202,7 +205,6 @@ void serial_init(serial_t *obj, PinName tx, PinName rx)
|
||||||
IndexNumber++;
|
IndexNumber++;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(LPUART1_BASE)
|
#if defined(LPUART1_BASE)
|
||||||
if (obj_s->uart == LPUART_1) {
|
if (obj_s->uart == LPUART_1) {
|
||||||
__HAL_RCC_LPUART1_FORCE_RESET();
|
__HAL_RCC_LPUART1_FORCE_RESET();
|
||||||
|
@ -423,38 +425,6 @@ void serial_baud(serial_t *obj, int baudrate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HAL_StatusTypeDef init_uart(serial_t *obj)
|
|
||||||
{
|
|
||||||
struct serial_s *obj_s = SERIAL_S(obj);
|
|
||||||
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
|
|
||||||
huart->Instance = (USART_TypeDef *)(obj_s->uart);
|
|
||||||
|
|
||||||
huart->Init.BaudRate = obj_s->baudrate;
|
|
||||||
huart->Init.WordLength = obj_s->databits;
|
|
||||||
huart->Init.StopBits = obj_s->stopbits;
|
|
||||||
huart->Init.Parity = obj_s->parity;
|
|
||||||
#if DEVICE_SERIAL_FC
|
|
||||||
huart->Init.HwFlowCtl = obj_s->hw_flow_ctl;
|
|
||||||
#else
|
|
||||||
huart->Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
|
||||||
#endif
|
|
||||||
huart->Init.OverSampling = UART_OVERSAMPLING_16;
|
|
||||||
huart->TxXferCount = 0;
|
|
||||||
huart->TxXferSize = 0;
|
|
||||||
huart->RxXferCount = 0;
|
|
||||||
huart->RxXferSize = 0;
|
|
||||||
|
|
||||||
if (obj_s->pin_rx == NC) {
|
|
||||||
huart->Init.Mode = UART_MODE_TX;
|
|
||||||
} else if (obj_s->pin_tx == NC) {
|
|
||||||
huart->Init.Mode = UART_MODE_RX;
|
|
||||||
} else {
|
|
||||||
huart->Init.Mode = UART_MODE_TX_RX;
|
|
||||||
}
|
|
||||||
|
|
||||||
return HAL_UART_Init(huart);
|
|
||||||
}
|
|
||||||
|
|
||||||
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits)
|
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits)
|
||||||
{
|
{
|
||||||
struct serial_s *obj_s = SERIAL_S(obj);
|
struct serial_s *obj_s = SERIAL_S(obj);
|
||||||
|
@ -550,4 +520,41 @@ void serial_break_clear(serial_t *obj)
|
||||||
(void)obj;
|
(void)obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* UTILITY FUNCTIONS
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
HAL_StatusTypeDef init_uart(serial_t *obj)
|
||||||
|
{
|
||||||
|
struct serial_s *obj_s = SERIAL_S(obj);
|
||||||
|
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
|
||||||
|
huart->Instance = (USART_TypeDef *)(obj_s->uart);
|
||||||
|
|
||||||
|
huart->Init.BaudRate = obj_s->baudrate;
|
||||||
|
huart->Init.WordLength = obj_s->databits;
|
||||||
|
huart->Init.StopBits = obj_s->stopbits;
|
||||||
|
huart->Init.Parity = obj_s->parity;
|
||||||
|
#if DEVICE_SERIAL_FC
|
||||||
|
huart->Init.HwFlowCtl = obj_s->hw_flow_ctl;
|
||||||
|
#else
|
||||||
|
huart->Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
|
#endif
|
||||||
|
huart->Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
|
huart->TxXferCount = 0;
|
||||||
|
huart->TxXferSize = 0;
|
||||||
|
huart->RxXferCount = 0;
|
||||||
|
huart->RxXferSize = 0;
|
||||||
|
|
||||||
|
if (obj_s->pin_rx == NC) {
|
||||||
|
huart->Init.Mode = UART_MODE_TX;
|
||||||
|
} else if (obj_s->pin_tx == NC) {
|
||||||
|
huart->Init.Mode = UART_MODE_RX;
|
||||||
|
} else {
|
||||||
|
huart->Init.Mode = UART_MODE_TX_RX;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HAL_UART_Init(huart);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* DEVICE_SERIAL */
|
#endif /* DEVICE_SERIAL */
|
||||||
|
|
Loading…
Reference in New Issue