aboutsummaryrefslogtreecommitdiffstats
path: root/os/ports/GCC/ARMCM3/STM32F103/serial_lld.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/ports/GCC/ARMCM3/STM32F103/serial_lld.c')
-rw-r--r--os/ports/GCC/ARMCM3/STM32F103/serial_lld.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/os/ports/GCC/ARMCM3/STM32F103/serial_lld.c b/os/ports/GCC/ARMCM3/STM32F103/serial_lld.c
index 5e4bcce99..bf06195be 100644
--- a/os/ports/GCC/ARMCM3/STM32F103/serial_lld.c
+++ b/os/ports/GCC/ARMCM3/STM32F103/serial_lld.c
@@ -45,6 +45,15 @@ SerialDriver COM2;
SerialDriver COM3;
#endif
+/** @brief Driver default configuration.*/
+static const SerialDriverConfig default_config =
+{
+ 38400,
+ 0,
+ USART_CR2_STOP1_BITS | USART_CR2_LINEN,
+ 0
+};
+
/*===========================================================================*/
/* Low Level Driver local functions. */
/*===========================================================================*/
@@ -222,10 +231,15 @@ void sd_lld_init(void) {
* @brief Low level serial driver configuration and (re)start.
*
* @param[in] sdp pointer to a @p SerialDriver object
- * @param[in] config the architecture-dependent serial driver configuration
+ * @param[in] config the architecture-dependent serial driver configuration.
+ * If this parameter is set to @p NULL then a default
+ * configuration is used.
*/
void sd_lld_start(SerialDriver *sdp, const SerialDriverConfig *config) {
+ if (config == NULL)
+ config = &default_config;
+
#if USE_STM32_USART1
if (&COM1 == sdp) {
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;