Skip to content

Commit d2b0266

Browse files
bors[bot]qwerty19106burrbull
authored
Merge #576
576: Add GPIO speed into SPI example, improve docs. r=burrbull a=qwerty19106 Fix 'wrong last bit in every received byte' problem, see [#564](#564) for details. Co-authored-by: Роман Кривенков <[email protected]> Co-authored-by: Andrey Zgarbul <[email protected]>
2 parents de18e51 + 367230c commit d2b0266

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
2222

2323
### Fixed
2424

25+
- `spi-dma` example pins speed
2526
- Fix alternate function pin definitions for FMPI2C1 [#572]
2627
- Fix SDIO hardware flow control errata [#577]
2728

examples/spi-dma.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use embedded_hal::spi::{Mode, Phase, Polarity};
1111
use stm32f4xx_hal::pac::interrupt;
1212
use stm32f4xx_hal::{
1313
dma::{config, traits::StreamISR, MemoryToPeripheral, Stream4, StreamsTuple, Transfer},
14+
gpio::Speed,
1415
pac,
1516
prelude::*,
1617
spi::*,
@@ -39,8 +40,15 @@ fn main() -> ! {
3940
let stream = steams.4;
4041

4142
let gpiob = dp.GPIOB.split();
42-
let pb15 = gpiob.pb15.into_alternate().internal_pull_up(true);
43-
let pb13 = gpiob.pb13.into_alternate();
43+
44+
// Note. We set GPIO speed as VeryHigh to it corresponds to SPI frequency 3MHz.
45+
// Otherwise it may lead to the 'wrong last bit in every received byte' problem.
46+
let pb15 = gpiob
47+
.pb15
48+
.into_alternate()
49+
.speed(Speed::VeryHigh)
50+
.internal_pull_up(true);
51+
let pb13 = gpiob.pb13.into_alternate().speed(Speed::VeryHigh);
4452

4553
let mode = Mode {
4654
polarity: Polarity::IdleLow,

0 commit comments

Comments
 (0)