File tree Expand file tree Collapse file tree 11 files changed +35
-23
lines changed Expand file tree Collapse file tree 11 files changed +35
-23
lines changed Original file line number Diff line number Diff line change @@ -281,8 +281,9 @@ void serial_clear(serial_t *obj)
281281 struct serial_s * obj_s = SERIAL_S (obj );
282282 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
283283
284- huart -> TxXferCount = 0 ;
285- huart -> RxXferCount = 0 ;
284+ /* Clear RXNE and error flags */
285+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> RDR ;
286+ HAL_UART_ErrorCallback (huart );
286287}
287288
288289void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -196,8 +196,9 @@ void serial_clear(serial_t *obj)
196196 struct serial_s * obj_s = SERIAL_S (obj );
197197 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
198198
199- huart -> TxXferCount = 0 ;
200- huart -> RxXferCount = 0 ;
199+ /* Clear RXNE and error flags */
200+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ;
201+ HAL_UART_ErrorCallback (huart );
201202}
202203
203204void serial_break_set (serial_t * obj )
@@ -576,7 +577,7 @@ void serial_rx_abort_asynch(serial_t *obj)
576577
577578 // clear flags
578579 __HAL_UART_CLEAR_FLAG (huart , UART_FLAG_RXNE );
579- volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ; // Clear errors flag
580+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ; // Clear Rx empty flag
580581
581582 // reset states
582583 huart -> RxXferCount = 0 ;
Original file line number Diff line number Diff line change @@ -253,8 +253,9 @@ void serial_clear(serial_t *obj)
253253 struct serial_s * obj_s = SERIAL_S (obj );
254254 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
255255
256- huart -> TxXferCount = 0 ;
257- huart -> RxXferCount = 0 ;
256+ /* Clear RXNE and error flags */
257+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ;
258+ HAL_UART_ErrorCallback (huart );
258259}
259260
260261void serial_break_set (serial_t * obj )
@@ -659,7 +660,7 @@ void serial_rx_abort_asynch(serial_t *obj)
659660
660661 // clear flags
661662 __HAL_UART_CLEAR_FLAG (huart , UART_FLAG_RXNE );
662- volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ; // Clear error flags
663+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ; // Clear Rx empty flags
663664
664665 // reset states
665666 huart -> RxXferCount = 0 ;
Original file line number Diff line number Diff line change @@ -228,7 +228,9 @@ void serial_clear(serial_t *obj)
228228 struct serial_s * obj_s = SERIAL_S (obj );
229229 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
230230
231- __HAL_UART_SEND_REQ (huart , UART_RXDATA_FLUSH_REQUEST );
231+ /* Clear RXNE and error flags */
232+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> RDR ;
233+ HAL_UART_ErrorCallback (huart );
232234}
233235
234236void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -289,8 +289,9 @@ void serial_clear(serial_t *obj)
289289 struct serial_s * obj_s = SERIAL_S (obj );
290290 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
291291
292- huart -> TxXferCount = 0 ;
293- huart -> RxXferCount = 0 ;
292+ /* Clear RXNE and error flags */
293+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ;
294+ HAL_UART_ErrorCallback (huart );
294295}
295296
296297void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -252,8 +252,9 @@ void serial_clear(serial_t *obj)
252252 struct serial_s * obj_s = SERIAL_S (obj );
253253 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
254254
255- __HAL_UART_CLEAR_IT (huart , UART_FLAG_TXE );
256- __HAL_UART_CLEAR_IT (huart , UART_FLAG_RXNE );
255+ /* Clear RXNE and error flags */
256+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> RDR ;
257+ HAL_UART_ErrorCallback (huart );
257258}
258259
259260void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -265,8 +265,9 @@ void serial_clear(serial_t *obj)
265265 struct serial_s * obj_s = SERIAL_S (obj );
266266 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
267267
268- __HAL_UART_CLEAR_IT (huart , UART_FLAG_TXE );
269- __HAL_UART_CLEAR_IT (huart , UART_FLAG_RXNE );
268+ /* Clear RXNE and error flags */
269+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> RDR ;
270+ HAL_UART_ErrorCallback (huart );
270271}
271272
272273void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -222,8 +222,9 @@ void serial_clear(serial_t *obj)
222222 struct serial_s * obj_s = SERIAL_S (obj );
223223 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
224224
225- huart -> TxXferCount = 0 ;
226- huart -> RxXferCount = 0 ;
225+ /* Clear RXNE and error flags */
226+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> RDR ;
227+ HAL_UART_ErrorCallback (huart );
227228}
228229
229230void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -222,8 +222,9 @@ void serial_clear(serial_t *obj)
222222 struct serial_s * obj_s = SERIAL_S (obj );
223223 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
224224
225- huart -> TxXferCount = 0 ;
226- huart -> RxXferCount = 0 ;
225+ /* Clear RXNE and error flags */
226+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> DR ;
227+ HAL_UART_ErrorCallback (huart );
227228}
228229
229230void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -241,8 +241,9 @@ void serial_clear(serial_t *obj)
241241 struct serial_s * obj_s = SERIAL_S (obj );
242242 UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
243243
244- huart -> TxXferCount = 0 ;
245- huart -> RxXferCount = 0 ;
244+ /* Clear RXNE and error flags */
245+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> RDR ;
246+ HAL_UART_ErrorCallback (huart );
246247}
247248
248249void serial_break_set (serial_t * obj )
You can’t perform that action at this time.
0 commit comments