@@ -114,6 +114,13 @@ static size_t read_ret;
114114static uint8_t read_tmp ;
115115static uint16_t next_head ;
116116static 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+
117124int uart_rx_irq (void * ctx )
118125{
119126 ctx_self = (machine_uart_obj_t * )ctx ;
@@ -253,6 +260,18 @@ int uart_rx_char(machine_uart_obj_t *self)
253260 return -1 ;
254261}
255262
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+
256275int uart_rx_data (machine_uart_obj_t * self ,uint8_t * buf_in ,uint32_t size )
257276{
258277 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_
552571STATIC const mp_rom_map_elem_t machine_uart_locals_dict_table [] = {
553572 { MP_ROM_QSTR (MP_QSTR_init ), MP_ROM_PTR (& machine_uart_init_obj ) },
554573 { 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 )},
556577 { MP_ROM_QSTR (MP_QSTR_readline ), MP_ROM_PTR (& mp_stream_unbuffered_readline_obj )},
557578 { MP_ROM_QSTR (MP_QSTR_readinto ), MP_ROM_PTR (& mp_stream_readinto_obj ) },
558579 { MP_ROM_QSTR (MP_QSTR_write ), MP_ROM_PTR (& mp_stream_write_obj ) },
0 commit comments