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)
281
281
struct serial_s * obj_s = SERIAL_S (obj );
282
282
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
283
283
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 );
286
287
}
287
288
288
289
void 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)
196
196
struct serial_s * obj_s = SERIAL_S (obj );
197
197
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
198
198
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 );
201
202
}
202
203
203
204
void serial_break_set (serial_t * obj )
@@ -576,7 +577,7 @@ void serial_rx_abort_asynch(serial_t *obj)
576
577
577
578
// clear flags
578
579
__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
580
581
581
582
// reset states
582
583
huart -> RxXferCount = 0 ;
Original file line number Diff line number Diff line change @@ -253,8 +253,9 @@ void serial_clear(serial_t *obj)
253
253
struct serial_s * obj_s = SERIAL_S (obj );
254
254
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
255
255
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 );
258
259
}
259
260
260
261
void serial_break_set (serial_t * obj )
@@ -659,7 +660,7 @@ void serial_rx_abort_asynch(serial_t *obj)
659
660
660
661
// clear flags
661
662
__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
663
664
664
665
// reset states
665
666
huart -> RxXferCount = 0 ;
Original file line number Diff line number Diff line change @@ -228,7 +228,9 @@ void serial_clear(serial_t *obj)
228
228
struct serial_s * obj_s = SERIAL_S (obj );
229
229
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
230
230
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 );
232
234
}
233
235
234
236
void 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)
289
289
struct serial_s * obj_s = SERIAL_S (obj );
290
290
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
291
291
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 );
294
295
}
295
296
296
297
void 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)
252
252
struct serial_s * obj_s = SERIAL_S (obj );
253
253
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
254
254
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 );
257
258
}
258
259
259
260
void 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)
265
265
struct serial_s * obj_s = SERIAL_S (obj );
266
266
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
267
267
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 );
270
271
}
271
272
272
273
void 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)
222
222
struct serial_s * obj_s = SERIAL_S (obj );
223
223
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
224
224
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 );
227
228
}
228
229
229
230
void 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)
222
222
struct serial_s * obj_s = SERIAL_S (obj );
223
223
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
224
224
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 );
227
228
}
228
229
229
230
void 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)
241
241
struct serial_s * obj_s = SERIAL_S (obj );
242
242
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
243
243
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 );
246
247
}
247
248
248
249
void serial_break_set (serial_t * obj )
Original file line number Diff line number Diff line change @@ -186,8 +186,9 @@ void serial_clear(serial_t *obj)
186
186
struct serial_s * obj_s = SERIAL_S (obj );
187
187
UART_HandleTypeDef * huart = & uart_handlers [obj_s -> index ];
188
188
189
- huart -> TxXferCount = 0 ;
190
- huart -> RxXferCount = 0 ;
189
+ /* Clear RXNE and error flags */
190
+ volatile uint32_t tmpval __attribute__((unused )) = huart -> Instance -> RDR ;
191
+ HAL_UART_ErrorCallback (huart );
191
192
}
192
193
193
194
void serial_break_set (serial_t * obj )
You can’t perform that action at this time.
0 commit comments