diff options
| author | Rasmus Melchior Jacobsen <[email protected]> | 2023-01-06 14:24:29 +0100 |
|---|---|---|
| committer | Rasmus Melchior Jacobsen <[email protected]> | 2023-01-06 14:24:29 +0100 |
| commit | 4c4b47f78a57e5bf3d05b319759351a005e69206 (patch) | |
| tree | 00f57792af7fcaf1a3808a6a90fba71f2f4302dd | |
| parent | 5aa59e97372e2efed4e35625b754364b1b4839a3 (diff) | |
feat(stm32): Add embedded-io traits for UartRx and UartTx
| -rw-r--r-- | embassy-stm32/src/usart/mod.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs index 233b56baa..1c13d9eca 100644 --- a/embassy-stm32/src/usart/mod.rs +++ b/embassy-stm32/src/usart/mod.rs | |||
| @@ -948,6 +948,45 @@ mod eio { | |||
| 948 | self.blocking_flush() | 948 | self.blocking_flush() |
| 949 | } | 949 | } |
| 950 | } | 950 | } |
| 951 | |||
| 952 | impl<T, RxDma> Io for UartRx<'_, T, RxDma> | ||
| 953 | where | ||
| 954 | T: BasicInstance, | ||
| 955 | { | ||
| 956 | type Error = Error; | ||
| 957 | } | ||
| 958 | |||
| 959 | impl<T, RxDma> Read for UartRx<'_, T, RxDma> | ||
| 960 | where | ||
| 961 | T: BasicInstance, | ||
| 962 | RxDma: super::RxDma<T>, | ||
| 963 | { | ||
| 964 | async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> { | ||
| 965 | self.read_until_idle(buf).await | ||
| 966 | } | ||
| 967 | } | ||
| 968 | |||
| 969 | impl<T, TxDma> Io for UartTx<'_, T, TxDma> | ||
| 970 | where | ||
| 971 | T: BasicInstance, | ||
| 972 | { | ||
| 973 | type Error = Error; | ||
| 974 | } | ||
| 975 | |||
| 976 | impl<T, TxDma> Write for UartTx<'_, T, TxDma> | ||
| 977 | where | ||
| 978 | T: BasicInstance, | ||
| 979 | TxDma: super::TxDma<T>, | ||
| 980 | { | ||
| 981 | async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error> { | ||
| 982 | self.write(buf).await?; | ||
| 983 | Ok(buf.len()) | ||
| 984 | } | ||
| 985 | |||
| 986 | async fn flush(&mut self) -> Result<(), Self::Error> { | ||
| 987 | self.blocking_flush() | ||
| 988 | } | ||
| 989 | } | ||
| 951 | } | 990 | } |
| 952 | 991 | ||
| 953 | #[cfg(all( | 992 | #[cfg(all( |
