43 #include "esos_stm32l4_rs232.h"
48 UART_HandleTypeDef st_huart2;
53 #define __ESOS_HW_SIGNAL_START_TX() __esos_SetSystemFlag(__ESOS_SYS_COMM_TX_ONGOING)
54 #define __ESOS_HW_SIGNAL_STOP_TX() __esos_ClearSystemFlag(__ESOS_SYS_COMM_TX_ONGOING)
59 inline void __esos_hw_signal_start_tx(
void) {
60 if __esos_IsSystemFlagClear(__ESOS_SYS_COMM_TX_ONGOING) {
62 __esos_SetSystemFlag(__ESOS_SYS_COMM_TX_ONGOING);
68 u8_uartTXbuf = __esos_CB_ReadUINT8( __pst_CB_Tx );
69 HAL_UART_Transmit_IT(&st_huart2, &u8_uartTXbuf, 1);
74 inline void __esos_hw_signal_stop_tx(
void) {
75 __esos_ClearSystemFlag(__ESOS_SYS_COMM_TX_ONGOING);
110 __esos_CB_OverwriteUINT8( __pst_CB_Rx, u8_uartRXbuf );
112 HAL_UART_Receive_IT(UartHandle, &u8_uartRXbuf, 1);
115 void HAL_UART_TxCpltCallback(UART_HandleTypeDef *UartHandle) {
116 if (__ESOS_CB_IS_EMPTY( __pst_CB_Tx)) {
118 __esos_hw_signal_stop_tx();
129 u8_uartTXbuf = __esos_CB_ReadUINT8( __pst_CB_Tx );
130 HAL_UART_Transmit_IT(&st_huart2, &u8_uartTXbuf, 1);
134 void HAL_UART_ErrorCallback(UART_HandleTypeDef *UartHandle) {
135 if(UartHandle->ErrorCode == HAL_UART_ERROR_ORE)
136 HAL_UART_Receive_IT(UartHandle, &u8_uartRXbuf, 1);
149 #if (HARDWARE_PLATFORM == NUCLEO64)
150 # warning Building configUART1() for Nucleo 64 development board
153 st_huart2.Instance = USART2;
154 st_huart2.Init.BaudRate = u32_baudRate;
155 st_huart2.Init.WordLength = UART_WORDLENGTH_8B;
156 st_huart2.Init.StopBits = UART_STOPBITS_1;
157 st_huart2.Init.Parity = UART_PARITY_NONE;
158 st_huart2.Init.Mode = UART_MODE_TX_RX;
159 st_huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
160 st_huart2.Init.OverSampling = UART_OVERSAMPLING_16;
161 st_huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
162 st_huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
163 if (HAL_UART_Init(&st_huart2) != HAL_OK) {
167 #error Can not configUART1() since target hardware has not been defined.
171 HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
172 HAL_NVIC_EnableIRQ(USART2_IRQn);
178 HAL_UART_Receive_IT(&st_huart2, &u8_uartRXbuf, 1);
197 void __esos_hw_InitCommSystem(
void) {
228 return ESOS_SERIAL_OUT_EP_SIZE;
256 return ESOS_SERIAL_IN_EP_SIZE;
275 uint8_t _esos_hw_GetSerialUartVersion(
void) {
276 return ESOS_COMM_SYS_SERIAL_REV;