mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-21 22:32:29 +00:00
Extend set_baudrate implementation to Buffered and RingBuffered structs
This commit is contained in:
parent
3c1c1d6b93
commit
eac8653c00
@ -12,8 +12,8 @@ use embassy_sync::waitqueue::AtomicWaker;
|
|||||||
#[cfg(not(any(usart_v1, usart_v2)))]
|
#[cfg(not(any(usart_v1, usart_v2)))]
|
||||||
use super::DePin;
|
use super::DePin;
|
||||||
use super::{
|
use super::{
|
||||||
clear_interrupt_flags, configure, rdr, reconfigure, send_break, sr, tdr, Config, ConfigError, CtsPin, Error, Info,
|
clear_interrupt_flags, configure, rdr, reconfigure, send_break, set_baudrate, sr, tdr, Config, ConfigError, CtsPin,
|
||||||
Instance, Regs, RtsPin, RxPin, TxPin,
|
Error, Info, Instance, Regs, RtsPin, RxPin, TxPin,
|
||||||
};
|
};
|
||||||
use crate::gpio::{AfType, AnyPin, OutputType, Pull, SealedPin as _, Speed};
|
use crate::gpio::{AfType, AnyPin, OutputType, Pull, SealedPin as _, Speed};
|
||||||
use crate::interrupt::{self, InterruptExt};
|
use crate::interrupt::{self, InterruptExt};
|
||||||
@ -441,6 +441,13 @@ impl<'d> BufferedUart<'d> {
|
|||||||
pub fn send_break(&self) {
|
pub fn send_break(&self) {
|
||||||
self.tx.send_break()
|
self.tx.send_break()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set baudrate
|
||||||
|
pub fn set_baudrate(&self, baudrate: u32) -> Result<(), ConfigError> {
|
||||||
|
self.tx.set_baudrate(baudrate)?;
|
||||||
|
self.rx.set_baudrate(baudrate)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'d> BufferedUartRx<'d> {
|
impl<'d> BufferedUartRx<'d> {
|
||||||
@ -535,6 +542,11 @@ impl<'d> BufferedUartRx<'d> {
|
|||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set baudrate
|
||||||
|
pub fn set_baudrate(&self, baudrate: u32) -> Result<(), ConfigError> {
|
||||||
|
set_baudrate(self.info, self.kernel_clock, baudrate)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'d> BufferedUartTx<'d> {
|
impl<'d> BufferedUartTx<'d> {
|
||||||
@ -625,6 +637,11 @@ impl<'d> BufferedUartTx<'d> {
|
|||||||
pub fn send_break(&self) {
|
pub fn send_break(&self) {
|
||||||
send_break(&self.info.regs);
|
send_break(&self.info.regs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set baudrate
|
||||||
|
pub fn set_baudrate(&self, baudrate: u32) -> Result<(), ConfigError> {
|
||||||
|
set_baudrate(self.info, self.kernel_clock, baudrate)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'d> Drop for BufferedUartRx<'d> {
|
impl<'d> Drop for BufferedUartRx<'d> {
|
||||||
|
@ -8,7 +8,9 @@ use embassy_hal_internal::PeripheralRef;
|
|||||||
use embedded_io_async::ReadReady;
|
use embedded_io_async::ReadReady;
|
||||||
use futures_util::future::{select, Either};
|
use futures_util::future::{select, Either};
|
||||||
|
|
||||||
use super::{clear_interrupt_flags, rdr, reconfigure, sr, Config, ConfigError, Error, Info, State, UartRx};
|
use super::{
|
||||||
|
clear_interrupt_flags, rdr, reconfigure, set_baudrate, sr, Config, ConfigError, Error, Info, State, UartRx,
|
||||||
|
};
|
||||||
use crate::dma::ReadableRingBuffer;
|
use crate::dma::ReadableRingBuffer;
|
||||||
use crate::gpio::{AnyPin, SealedPin as _};
|
use crate::gpio::{AnyPin, SealedPin as _};
|
||||||
use crate::mode::Async;
|
use crate::mode::Async;
|
||||||
@ -213,6 +215,11 @@ impl<'d> RingBufferedUartRx<'d> {
|
|||||||
Either::Right(((), _)) => Ok(()),
|
Either::Right(((), _)) => Ok(()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set baudrate
|
||||||
|
pub fn set_baudrate(&self, baudrate: u32) -> Result<(), ConfigError> {
|
||||||
|
set_baudrate(self.info, self.kernel_clock, baudrate)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Drop for RingBufferedUartRx<'_> {
|
impl Drop for RingBufferedUartRx<'_> {
|
||||||
|
Loading…
Reference in New Issue
Block a user