Example #1
0
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);
}