[−][src]Module stm32f1xx_hal::spi
Serial Peripheral Interface
To construct the SPI instances, use the Spi::spiX functions.
The pin parameter is a tuple containing (sck, miso, mosi) which should be configured as (Alternate<PushPull>, Input<Floating>, Alternate<PushPull>).
You can also use NoSck, NoMiso or NoMosi if you don't want to use the pins
SPI1can use(PA5, PA6, PA7)or(PB3, PB4, PB5).SPI2can use(PB13, PB14, PB15)SPI3can use(PB3, PB4, PB5)or(PC10, PC11, PC12)
Initialisation example
// Acquire the GPIOB peripheral let mut gpiob = dp.GPIOB.split(&mut rcc.apb2); let pins = ( gpiob.pb13.into_alternate_push_pull(&mut gpiob.crh), gpiob.pb14.into_floating_input(&mut gpiob.crh), gpiob.pb15.into_alternate_push_pull(&mut gpiob.crh), ); let spi_mode = Mode { polarity: Polarity::IdleLow, phase: Phase::CaptureOnFirstTransition, }; let spi = Spi::spi2(dp.SPI2, pins, spi_mode, 100.khz(), clocks, &mut rcc.apb1);
Structs
| Mode | SPI mode |
| NoMiso | A filler type for when the Miso pin is unnecessary |
| NoMosi | A filler type for when the Mosi pin is unnecessary |
| NoSck | A filler type for when the SCK pin is unnecessary |
| Spi | |
| Spi1NoRemap | |
| Spi1Remap | |
| Spi2NoRemap | |
| SpiPayload |
Enums
| Error | SPI error |
| Phase | Clock phase |
| Polarity | Clock polarity |
Traits
| FullDuplex | Full duplex (master mode) |
| Pins |
Type Definitions
| SpiRegisterBlock | |
| SpiTxDma |