You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello, I'm trying to use the embedded_hal traits to represent features of a custom board, and I'm running into a problem with the SPI implementation:
use embedded_hal::{spi::MODE_1};
use embedded_hal_bus::spi::{ExclusiveDevice, NoDelay};
use stm32_hal2::{
gpio::{Pin, PinMode, Port },
pac,
spi::{BaudRate, Spi, SpiConfig },
};
use super::encoder::As5047p;
use {defmt_rtt as _, panic_probe as _};
pub struct MyBoard {
pub led1: Pin,
pub led2: Pin,
pub encoder: As5047p<ExclusiveDevice<Spi<pac::SPI1>, Pin>>,
}
impl MyBoard {
pub fn new(dp: pac::Peripherals) -> Self {
// Configure LED pins
let mut led1 = Pin::new(Port::B, 14, PinMode::Output);
let mut led2 = Pin::new(Port::C, 6, PinMode::Output);
// Set LEDs high (they are active low)
led1.set_high();
led2.set_high();
// SPI1 pins with correct alternate functions
let sck = Pin::new(Port::A, 5, PinMode::Alt(5)); // AF5 for SPI1_SCK
let mosi = Pin::new(Port::A, 7, PinMode::Alt(5)); // AF5 for SPI1_MOSI
let miso = Pin::new(Port::B, 4, PinMode::Alt(5)); // AF5 for SPI1_MISO
let mut cs = Pin::new(Port::B, 2, PinMode::Output);
cs.set_high();
// Configure SPI
let spi_cfg = SpiConfig {
mode: MODE_1,
// `SpiConfig::default` is mode 0, full duplex, with software CS.
..Default::default()
};
let spi = Spi::new(
dp.SPI1,
spi_cfg,
BaudRate::Div32, // Eg 80Mhz apb clock / 32 = 2.5Mhz SPI clock.
);
// Create the exclusive device for the encoder
let spi_device = ExclusiveDevice::new_no_delay(spi, cs).unwrap();
let encoder = As5047p::new(spi_device);
Self {
led1,
led2,
encoder,
}
}
}
I'm getting the following errors:
^^^^^^^^^^ the trait `SpiBus` is not implemented for `stm32_hal2::spi::Spi<stm32_hal2::pac::SPI1>`, which is required by `ExclusiveDevice<stm32_hal2::spi::Spi<stm32_hal2::pac::SPI1>, stm32_hal2::gpio::Pin, NoDelay>: SpiDevice`
I can't seem to figure out how to get around this error. Is there an implementation of the embedded_hal SpiBus trait for the Spi struct?
The text was updated successfully, but these errors were encountered:
Hello, I'm trying to use the embedded_hal traits to represent features of a custom board, and I'm running into a problem with the SPI implementation:
I'm getting the following errors:
I can't seem to figure out how to get around this error. Is there an implementation of the embedded_hal SpiBus trait for the Spi struct?
The text was updated successfully, but these errors were encountered: