@@ -114,6 +114,13 @@ static size_t read_ret;
114
114
static uint8_t read_tmp ;
115
115
static uint16_t next_head ;
116
116
static machine_uart_obj_t * ctx_self = NULL ;
117
+
118
+ mp_obj_t uart_any (machine_uart_obj_t * self )
119
+ {
120
+ return mp_obj_new_int (uart_rx_any (self ));
121
+ }
122
+ MP_DEFINE_CONST_FUN_OBJ_1 (machine_uart_any_obj , uart_any );
123
+
117
124
int uart_rx_irq (void * ctx )
118
125
{
119
126
ctx_self = (machine_uart_obj_t * )ctx ;
@@ -253,6 +260,18 @@ int uart_rx_char(machine_uart_obj_t *self)
253
260
return -1 ;
254
261
}
255
262
263
+ mp_obj_t uart_readchar (machine_uart_obj_t * self )
264
+ {
265
+ int data = uart_rx_char (self );
266
+
267
+ if (data != -1 )
268
+ {
269
+ return mp_obj_new_bytes (& data ,1 );
270
+ }
271
+ return MP_OBJ_NULL ;
272
+ }
273
+ MP_DEFINE_CONST_FUN_OBJ_1 (machine_uart_rx_char_obj , uart_rx_char );
274
+
256
275
int uart_rx_data (machine_uart_obj_t * self ,uint8_t * buf_in ,uint32_t size )
257
276
{
258
277
uint16_t data_num = 0 ;
@@ -552,7 +571,9 @@ MP_DEFINE_CONST_FUN_OBJ_1(machine_set_uart_repl_uart_obj, machine_set_uart_repl_
552
571
STATIC const mp_rom_map_elem_t machine_uart_locals_dict_table [] = {
553
572
{ MP_ROM_QSTR (MP_QSTR_init ), MP_ROM_PTR (& machine_uart_init_obj ) },
554
573
{ MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& machine_uart_deinit_obj ) },
555
-
574
+
575
+ { MP_ROM_QSTR (MP_QSTR_readchar ), MP_ROM_PTR (& machine_uart_rx_char_obj )},
576
+ { MP_ROM_QSTR (MP_QSTR_any ), MP_ROM_PTR (& machine_uart_any_obj )},
556
577
{ MP_ROM_QSTR (MP_QSTR_readline ), MP_ROM_PTR (& mp_stream_unbuffered_readline_obj )},
557
578
{ MP_ROM_QSTR (MP_QSTR_readinto ), MP_ROM_PTR (& mp_stream_readinto_obj ) },
558
579
{ MP_ROM_QSTR (MP_QSTR_write ), MP_ROM_PTR (& mp_stream_write_obj ) },
0 commit comments