mbed w/ spi bug fig
Fork of mbed-src by
Diff: targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/serial_api.c
- Revision:
- 242:7074e42da0b2
- Parent:
- 227:7bd0639b8911
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/serial_api.c Thu Jun 26 10:30:09 2014 +0100 +++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/serial_api.c Fri Jun 27 07:30:09 2014 +0100 @@ -78,7 +78,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); @@ -180,10 +188,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) {