diff --git a/docs/library/pyb.UART.rst b/docs/library/pyb.UART.rst
index a636e65e30f7ae689cfe95a4dcc1827f636499f6..257a9f281bafca5afd823b4f92dd1ed539908ad5 100644
--- a/docs/library/pyb.UART.rst
+++ b/docs/library/pyb.UART.rst
@@ -134,3 +134,9 @@ Methods
 
    Write a single character on the bus.  ``char`` is an integer to write.
    Return value: ``None``.
+
+.. method:: uart.sendbreak()
+
+   Send a break condition on the bus.  This drives the bus low for a duration
+   of 13 bits.
+   Return value: ``None``.
diff --git a/stmhal/qstrdefsport.h b/stmhal/qstrdefsport.h
index 3aecb7acfac6cb329feea463a9625c4f7843c007..85ab206756884536c2fa9134baedcbc2394c4f80 100644
--- a/stmhal/qstrdefsport.h
+++ b/stmhal/qstrdefsport.h
@@ -186,6 +186,7 @@ Q(any)
 Q(writechar)
 Q(readchar)
 Q(readinto)
+Q(sendbreak)
 Q(RTS)
 Q(CTS)
 
diff --git a/stmhal/uart.c b/stmhal/uart.c
index 23eba45b87ba1679f3961c578b776c17e2a594df..d888358b36fb037d859aa0f102d71662dab866ad 100644
--- a/stmhal/uart.c
+++ b/stmhal/uart.c
@@ -614,6 +614,14 @@ STATIC mp_obj_t pyb_uart_readchar(mp_obj_t self_in) {
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_uart_readchar_obj, pyb_uart_readchar);
 
+// uart.sendbreak()
+STATIC mp_obj_t pyb_uart_sendbreak(mp_obj_t self_in) {
+    pyb_uart_obj_t *self = self_in;
+    self->uart.Instance->CR1 |= USART_CR1_SBK;
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_uart_sendbreak_obj, pyb_uart_sendbreak);
+
 STATIC const mp_map_elem_t pyb_uart_locals_dict_table[] = {
     // instance methods
 
@@ -634,6 +642,7 @@ STATIC const mp_map_elem_t pyb_uart_locals_dict_table[] = {
 
     { MP_OBJ_NEW_QSTR(MP_QSTR_writechar), (mp_obj_t)&pyb_uart_writechar_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_readchar), (mp_obj_t)&pyb_uart_readchar_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_sendbreak), (mp_obj_t)&pyb_uart_sendbreak_obj },
 
     // class constants
     { MP_OBJ_NEW_QSTR(MP_QSTR_RTS), MP_OBJ_NEW_SMALL_INT(UART_HWCONTROL_RTS) },
diff --git a/tests/pyb/uart.py b/tests/pyb/uart.py
index 288022fea41b3a9555900e21c1fb8866cf6f47c5..c83d18349e26aeff9dd35b985488fa273a9ab5e1 100644
--- a/tests/pyb/uart.py
+++ b/tests/pyb/uart.py
@@ -12,3 +12,6 @@ print(uart.any())
 print(uart.write('123'))
 print(uart.write(b'abcd'))
 print(uart.writechar(1))
+
+# make sure this method exists
+uart.sendbreak()