@@ -112,6 +112,12 @@ mp_uint_t uart_rx_any(machine_uart_obj_t *self)
112112 }
113113}
114114
115+ mp_obj_t uart_any (machine_uart_obj_t * self )
116+ {
117+ return mp_obj_new_int (uart_rx_any (self ));
118+ }
119+ MP_DEFINE_CONST_FUN_OBJ_1 (machine_uart_any_obj , uart_any );
120+
115121int uart_rx_irq (void * ctx )
116122{
117123 machine_uart_obj_t * self = ctx ;
@@ -237,6 +243,18 @@ int uart_rx_char(machine_uart_obj_t *self)
237243 return -1 ;
238244}
239245
246+ mp_obj_t uart_readchar (machine_uart_obj_t * self )
247+ {
248+ int data = uart_rx_char (self );
249+
250+ if (data != -1 )
251+ {
252+ return mp_obj_new_bytes (& data ,1 );
253+ }
254+ return MP_OBJ_NULL ;
255+ }
256+ MP_DEFINE_CONST_FUN_OBJ_1 (machine_uart_rx_char_obj , uart_rx_char );
257+
240258int uart_rx_data (machine_uart_obj_t * self ,uint8_t * buf_in ,uint32_t size )
241259{
242260 uint16_t data_num = 0 ;
@@ -501,7 +519,9 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(machine_uart_deinit_obj, machine_uart_deinit);
501519STATIC const mp_rom_map_elem_t machine_uart_locals_dict_table [] = {
502520 { MP_ROM_QSTR (MP_QSTR_init ), MP_ROM_PTR (& machine_uart_init_obj ) },
503521 { MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& machine_uart_deinit_obj ) },
504-
522+
523+ { MP_ROM_QSTR (MP_QSTR_readchar ), MP_ROM_PTR (& machine_uart_rx_char_obj )},
524+ { MP_ROM_QSTR (MP_QSTR_any ), MP_ROM_PTR (& machine_uart_any_obj )},
505525 { MP_ROM_QSTR (MP_QSTR_readline ), MP_ROM_PTR (& mp_stream_unbuffered_readline_obj )},
506526 { MP_ROM_QSTR (MP_QSTR_readinto ), MP_ROM_PTR (& mp_stream_readinto_obj ) },
507527 { MP_ROM_QSTR (MP_QSTR_write ), MP_ROM_PTR (& mp_stream_write_obj ) },
0 commit comments