pw_uart#
Core interfaces for UART communication
Unstable C++
Pigweed’s pw_uart
module provides a set of interfaces for communicating via
UART.
Overview#
pw_uart
defines core methods for UART communication. This serves
as a blueprint for concrete UART implementations. You will need to write the
backend code tailored to your specific hardware device to interact with the
UART peripheral.
The interface consists of these main classes:
UartBase - Base class which provides basic enable/disable and configuration control, but no communication.
Uart - Extends
pw::uart::UartBase
to provide blocking Read and Write APIs.UartNonBlocking - Extends
pw::uart::UartBase
to provide non-blocking (callback-based) Read and Write APIs.UartBlockingAdapter - Provides the blocking
Uart
interface on top of aUartNonBlocking
device.UartStream - Provides the
pw::stream::NonSeekableReaderWriter
(pw_stream) interface on top of aUart
device.
Warning
Drivers should not implement both Uart
and UartNonBlocking
interfaces.
Drivers which support non-blocking (callback) behavior should implement
UartNonBlocking
. Applications that require the blocking Uart
interface can use the UartBlockingAdapter
.
Get started#
Add @pigweed//pw_uart
to the deps
list in your Bazel target:
cc_library("...") {
# ...
deps = [
# ...
"@pigweed//pw_uart",
# ...
]
}
Add $dir_pw_uart
to the deps
list in your pw_executable()
build target:
pw_executable("...") {
# ...
deps = [
# ...
"$dir_pw_uart",
# ...
]
}
Add pw_uart
to your pw_add_library
or similar CMake target:
pw_add_library(my_library STATIC
HEADERS
...
PRIVATE_DEPS
# ...
pw_uart
# ...
)
API reference#
Moved: pw_uart