Platform drivers for Mbed.
Dependents: EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more
Diff: src/uart.cpp
- Revision:
- 11:a2dcf0ebb5b5
- Parent:
- 9:9e247b9c9abf
- Child:
- 15:fd2c3c3038bf
--- a/src/uart.cpp Wed Jun 17 14:54:14 2020 +0000 +++ b/src/uart.cpp Mon Aug 03 17:21:20 2020 +0530 @@ -33,17 +33,14 @@ */ int32_t uart_read(struct uart_desc *desc, uint8_t *data, uint32_t bytes_number) { - mbed::Serial *uart; // pointer to Serial/UART instance + mbed::UnbufferedSerial *uart; // pointer to UnbufferedSerial/UART instance if (desc) { if (((mbed_uart_desc *)(desc->extra))->uart_port) { - uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port); + uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port); if (data) { - for (size_t i = 0; i < bytes_number; i++) { - data[i] = uart->getc(); - } - + uart->read(data, bytes_number); return SUCCESS; } } @@ -63,17 +60,14 @@ int32_t uart_write(struct uart_desc *desc, const uint8_t *data, uint32_t bytes_number) { - mbed::Serial *uart; // pointer to Serial/UART instance + mbed::UnbufferedSerial *uart; // pointer to UnbufferedSerial/UART instance if (desc) { if (((mbed_uart_desc *)(desc->extra))->uart_port) { - uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port); + uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port); if (data) { - for (size_t i = 0; i < bytes_number; i++) { - uart->putc(data[i]); - } - + uart->write(data, bytes_number); return SUCCESS; } } @@ -96,16 +90,16 @@ uint8_t *data, uint32_t bytes_number) { - mbed::Serial *uart; // pointer to Serial/UART instance + mbed::UnbufferedSerial *uart; // pointer to UnbufferedSerial/UART instance if (desc) { if (((mbed_uart_desc *)(desc->extra))->uart_port) { - uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port); + uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port); if (data) { for (size_t i = 0; i < bytes_number; i++) { if (uart->readable() > 0) { - data[i] = uart->getc(); + uart->read(&data[i], 1); } } @@ -131,16 +125,16 @@ const uint8_t *data, uint32_t bytes_number) { - mbed::Serial *uart; // pointer to Serial/UART instance + mbed::UnbufferedSerial *uart; // pointer to UnbufferedSerial/UART instance if (desc) { if (((mbed_uart_desc *)(desc->extra))->uart_port) { - uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port); + uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port); if (data) { for (size_t i = 0; i < bytes_number; i++) { - if (uart->writable() > 0) { - uart->putc(data[i]); + if (uart->writeable() > 0) { + uart->write(&data[i], 1); } } @@ -161,7 +155,7 @@ */ int32_t uart_init(struct uart_desc **desc, struct uart_init_param *param) { - mbed::Serial *uart; // pointer to new Serial/UART instance + mbed::UnbufferedSerial *uart; // pointer to new UnbufferedSerial/UART instance mbed_uart_desc *mbed_desc; // Pointer to mbed uart descriptor if (desc && param) { @@ -173,8 +167,8 @@ new_desc->baud_rate = param->baud_rate; - // Create and configure a new instance of Serial/UART port - uart = new Serial( + // Create and configure a new instance of UnbufferedSerial/UART port + uart = new UnbufferedSerial( (PinName)(((mbed_uart_init_param *)param->extra)->uart_tx_pin), (PinName)(((mbed_uart_init_param *)param->extra)->uart_rx_pin), (int)param->baud_rate); @@ -189,7 +183,7 @@ return FAILURE; } - mbed_desc->uart_port = (Serial *)uart; + mbed_desc->uart_port = (UnbufferedSerial *)uart; new_desc->extra = (mbed_uart_desc *)mbed_desc; *desc = new_desc; @@ -210,8 +204,8 @@ { if (desc) { // Free the UART port object - if ((Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port)) { - delete((Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port)); + if ((UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port)) { + delete((UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port)); } // Free the UART extra descriptor object