Skip to content

Commit

Permalink
Merge pull request tock#4306 from GabrielPavaloiu/stm32f4xx-usart-dis…
Browse files Browse the repository at this point in the history
…able

stm32f4xx: usart disable
  • Loading branch information
lschuermann authored Jan 15, 2025
2 parents a0c6f6c + d200f19 commit 95a5ea1
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions chips/stm32f4xx/src/usart.rs
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,19 @@ impl<'a, DMA: dma::StreamServer<'a>> Usart<'a, DMA> {
self.registers.brr.modify(BRR::DIV_Fraction.val(fraction));
Ok(())
}

// try to disable the USART and return BUSY if a transfer is taking place
pub fn disable(&self) -> Result<(), ErrorCode> {
if self.usart_tx_state.get() == USARTStateTX::DMA_Transmitting
|| self.usart_tx_state.get() == USARTStateTX::Transfer_Completing
|| self.usart_rx_state.get() == USARTStateRX::DMA_Receiving
{
Err(ErrorCode::BUSY)
} else {
self.registers.cr1.modify(CR1::UE::CLEAR);
Ok(())
}
}
}

impl<'a, DMA: dma::StreamServer<'a>> DeferredCallClient for Usart<'a, DMA> {
Expand Down

0 comments on commit 95a5ea1

Please sign in to comment.