int32_t HAL_USB_USART_Receive_Data(HAL_USB_USART_Serial serial, uint8_t peek) { if (HAL_USB_USART_Available_Data(serial) > 0) { int state = HAL_disable_irq(); uint8_t data = usbUsartMap[serial].data->rx_buffer[usbUsartMap[serial].data->rx_buffer_tail]; if (!peek) { usbUsartMap[serial].data->rx_buffer_tail = ring_wrap(usbUsartMap[serial].data->rx_buffer_length, usbUsartMap[serial].data->rx_buffer_tail + 1); } HAL_enable_irq(state); return data; } return -1; }
int USBSerial::available() { return HAL_USB_USART_Available_Data(_serial); }