Skip to content

Commit 19d17b6

Browse files
committed
fix: rx stop not found with esp32
1 parent 55fde0e commit 19d17b6

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

esp-hal/src/dma/buffers.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1535,7 +1535,7 @@ impl DmaTxStreamBufView {
15351535
}
15361536

15371537
fn truncate_by(n: usize, by: usize) -> usize {
1538-
(n >= by).then(|| n - by).unwrap_or(n)
1538+
if n >= by { n - by } else { n }
15391539
}
15401540

15411541
let n_chunks = self.buf.descriptors.len();

esp-hal/src/i2s/master.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@
4141
//! ```rust, no_run
4242
//! # {before_snippet}
4343
//! # use esp_hal::i2s::master::{I2s, Standard, DataFormat};
44-
//! # use esp_hal::dma_buffers;
44+
//! # use esp_hal::dma_buffers_chunk_size;
4545
//! # {dma_channel}
46-
//! let (mut rx_buffer, rx_descriptors, _, _) = dma_buffers!(4 * 4092, 0);
46+
//! let (mut rx_buffer, rx_descriptors, _, _) = dma_buffers_chunk_sizse!(4 * 4092, 0, 4092);
4747
//!
4848
//! let i2s = I2s::new(
4949
//! peripherals.I2S0,
@@ -58,16 +58,19 @@
5858
//! .with_bclk(peripherals.GPIO1)
5959
//! .with_ws(peripherals.GPIO2)
6060
//! .with_din(peripherals.GPIO5)
61-
//! .build(rx_descriptors);
61+
//! .build();
6262
//!
63-
//! let mut transfer = i2s_rx.read_dma_circular(&mut rx_buffer)?;
63+
//! let mut transfer = i2s_rx.read(
64+
//! DmaRxStreamBuf::new(rx_descriptors, rx_buffer).unwrap(),
65+
//! 4092,
66+
//! )?;
6467
//!
6568
//! loop {
66-
//! let avail = transfer.available()?;
69+
//! let avail = transfer.available_bytes();
6770
//!
6871
//! if avail > 0 {
6972
//! let mut rcv = [0u8; 5000];
70-
//! transfer.pop(&mut rcv[..avail])?;
73+
//! transfer.pop(&mut rcv[..avail]);
7174
//! }
7275
//! }
7376
//! # }
@@ -1004,6 +1007,12 @@ mod private {
10041007
self.regs().conf().modify(|_, w| w.tx_start().clear_bit());
10051008
}
10061009

1010+
fn rx_stop(&self) {
1011+
self.regs()
1012+
.rx_conf()
1013+
.modify(|_, w| w.rx_start().clear_bit());
1014+
}
1015+
10071016
fn wait_for_tx_done(&self) {
10081017
while self.regs().state().read().tx_idle().bit_is_clear() {
10091018
// wait

0 commit comments

Comments
 (0)