Serial
acquireSerial1Buffer()
// SYNTAX
hal_usart_buffer_config_t acquireSerial1Buffer()
{
#if !HAL_PLATFORM_USART_9BIT_SUPPORTED
const size_t bufferSize = 64;
#else
// If 9-bit mode is supported (e.g. on Gen 2 platforms)
// and it's planned to use this mode, it's necessary to allocate
// 2x the number of bytes.
const size_t bufferSize = 64 * sizeof(uint16_t);
#endif // HAL_PLATFORM_USART_9BIT_SUPPORTED
hal_usart_buffer_config_t config = {
.size = sizeof(hal_usart_buffer_config_t),
.rx_buffer = new (std::nothrow) uint8_t[bufferSize],
.rx_buffer_size = bufferSize,
.tx_buffer = new (std::nothrow) uint8_t[bufferSize],
.tx_buffer_size = bufferSize
};
return config;
}
hal_usart_buffer_config_t acquireSerial2Buffer()
{
const size_t bufferSize = 64;
hal_usart_buffer_config_t config = {
.size = sizeof(hal_usart_buffer_config_t),
.rx_buffer = new (std::nothrow) uint8_t[bufferSize],
.rx_buffer_size = bufferSize,
.tx_buffer = new (std::nothrow) uint8_t[bufferSize],
.tx_buffer_size = bufferSize
};
return config;
}
Since 3.2.0:
It is possible for the application to allocate its own buffers for Serial1
and other hardware UART ports by implementing acquireSerial1Buffer
, acquireSerial2Buffer
etc. Minimum receive buffer size is 64 bytes.
Depending on UART mode it might be required to allocate double the number of bytes (e.g. for 9-bit modes).