mbed library sources
Dependents: frdm_kl05z_gpio_test
Fork of mbed-src by
Diff: targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/serial_api.c
- Revision:
- 242:7074e42da0b2
- Parent:
- 227:7bd0639b8911
diff -r ffe41b0c8126 -r 7074e42da0b2 targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/serial_api.c --- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/serial_api.c Thu Jun 26 10:30:09 2014 +0100 +++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F030R8/serial_api.c Fri Jun 27 07:30:09 2014 +0100 @@ -71,7 +71,15 @@ USART_InitStructure.USART_StopBits = obj->stopbits; USART_InitStructure.USART_Parity = obj->parity; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; - USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; + + if (obj->pin_rx == NC) { + USART_InitStructure.USART_Mode = USART_Mode_Tx; + } else if (obj->pin_tx == NC) { + USART_InitStructure.USART_Mode = USART_Mode_Rx; + } else { + USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; + } + USART_Init(usart, &USART_InitStructure); USART_Cmd(usart, ENABLE); @@ -147,10 +155,10 @@ } void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) { - if (data_bits == 8) { + if (data_bits == 9) { + obj->databits = USART_WordLength_9b; + } else { obj->databits = USART_WordLength_8b; - } else { - obj->databits = USART_WordLength_9b; } switch (parity) {