Merge pull request #300 from thalesfragoso/clear-dma

stm32: Clear possible set flags after disabling DMA
This commit is contained in:
Thales 2021-07-17 17:28:02 -03:00 committed by GitHub
commit 40ea8298ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 1 deletions

View file

@ -66,6 +66,11 @@ pub(crate) async unsafe fn do_transfer(
w.set_en(false);
});
while ch.cr().read().en() {}
// Disabling the DMA mid transfer might cause some flags to be set, clear them all for the
// next transfer
dma.ifcr()
.write(|w| w.set_gif(channel_number as usize, true));
});
#[cfg(dmamux)]

View file

@ -67,6 +67,13 @@ pub(crate) async unsafe fn do_transfer(
w.set_en(false);
});
while ch.cr().read().en() {}
// Disabling the DMA mid transfer might cause some flags to be set, clear them all for the
// next transfer
dma.ifcr(channel_number as usize / 4).write(|w| {
w.set_tcif(channel_number as usize % 4, true);
w.set_teif(channel_number as usize % 4, true);
});
});
#[cfg(dmamux)]

@ -1 +1 @@
Subproject commit 8702a3a3bb83a59515dab2cf9f75952fa6edae8a
Subproject commit ce2e32b927a3637d975e780274b8e0c985f5d992