mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-21 22:32:29 +00:00
Merge pull request #3027 from embassy-rs/check-cfg-fix
Fix all check-cfg errors, fix stm32 spi rxonly.
This commit is contained in:
commit
7baa14371b
@ -22,6 +22,7 @@ target = "thumbv7em-none-eabi"
|
||||
|
||||
[dependencies]
|
||||
defmt = { version = "0.3", optional = true }
|
||||
log = { version = "0.4.17", optional = true }
|
||||
|
||||
embassy-sync = { version = "0.6.0", path = "../embassy-sync" }
|
||||
embassy-nrf = { version = "0.1.0", path = "../embassy-nrf", default-features = false }
|
||||
|
@ -21,7 +21,6 @@ target = "thumbv6m-none-eabi"
|
||||
|
||||
[dependencies]
|
||||
defmt = { version = "0.3", optional = true }
|
||||
defmt-rtt = { version = "0.4", optional = true }
|
||||
log = { version = "0.4", optional = true }
|
||||
|
||||
embassy-sync = { version = "0.6.0", path = "../embassy-sync" }
|
||||
@ -46,7 +45,6 @@ log = [
|
||||
"embassy-boot/log",
|
||||
"embassy-rp/log",
|
||||
]
|
||||
debug = ["defmt-rtt"]
|
||||
|
||||
[profile.dev]
|
||||
debug = 2
|
||||
|
@ -5,4 +5,5 @@ fn main() {
|
||||
if target.starts_with("thumbv6m-") {
|
||||
println!("cargo:rustc-cfg=armv6m");
|
||||
}
|
||||
println!("cargo:rustc-check-cfg=cfg(armv6m)");
|
||||
}
|
||||
|
@ -22,7 +22,6 @@ target = "thumbv7em-none-eabi"
|
||||
|
||||
[dependencies]
|
||||
defmt = { version = "0.3", optional = true }
|
||||
defmt-rtt = { version = "0.4", optional = true }
|
||||
log = { version = "0.4", optional = true }
|
||||
|
||||
embassy-sync = { version = "0.6.0", path = "../embassy-sync" }
|
||||
@ -37,7 +36,6 @@ cfg-if = "1.0.0"
|
||||
[features]
|
||||
defmt = ["dep:defmt", "embassy-boot/defmt", "embassy-stm32/defmt"]
|
||||
log = ["dep:log", "embassy-boot/log", "embassy-stm32/log"]
|
||||
debug = ["defmt-rtt"]
|
||||
|
||||
[profile.dev]
|
||||
debug = 2
|
||||
|
@ -5,4 +5,5 @@ fn main() {
|
||||
if target.starts_with("thumbv6m-") {
|
||||
println!("cargo:rustc-cfg=armv6m");
|
||||
}
|
||||
println!("cargo:rustc-check-cfg=cfg(armv6m)");
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ critical-section = { version = "1.1.2", features = ["std"] }
|
||||
futures-test = "0.3.28"
|
||||
|
||||
[features]
|
||||
default = [ ]
|
||||
defmt = [ "dep:defmt", "embedded-hal-1/defmt-03" ]
|
||||
log = ["dep:log"]
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#![cfg_attr(not(test), no_std)]
|
||||
#![deny(clippy::pedantic)]
|
||||
#![allow(async_fn_in_trait)]
|
||||
#![cfg_attr(not(any(test, feature = "std")), no_std)]
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
|
@ -28,6 +28,8 @@ embassy-embedded-hal = { version = "0.1.0", path = "../embassy-embedded-hal" }
|
||||
embassy-net-driver = { version = "0.2.0", path = "../embassy-net-driver", optional=true }
|
||||
|
||||
defmt = { version = "0.3", optional = true }
|
||||
log = { version = "0.4.17", optional = true }
|
||||
|
||||
cortex-m = "0.7.6"
|
||||
heapless = "0.8"
|
||||
aligned = "0.4.1"
|
||||
|
@ -148,9 +148,10 @@ impl<'d, M: PeriMode> Spi<'d, M> {
|
||||
w.set_ssm(true);
|
||||
w.set_crcen(false);
|
||||
w.set_bidimode(vals::Bidimode::UNIDIRECTIONAL);
|
||||
if mosi.is_none() {
|
||||
w.set_rxonly(vals::Rxonly::OUTPUTDISABLED);
|
||||
}
|
||||
// we're doing "fake rxonly", by actually writing one
|
||||
// byte to TXDR for each byte we want to receive. if we
|
||||
// set OUTPUTDISABLED here, this hangs.
|
||||
w.set_rxonly(vals::Rxonly::FULLDUPLEX);
|
||||
w.set_dff(<u8 as SealedWord>::CONFIG)
|
||||
});
|
||||
}
|
||||
|
@ -26,9 +26,11 @@ flavors = [
|
||||
features = ["defmt", "cortex-m", "dfu"]
|
||||
|
||||
[dependencies]
|
||||
defmt = { version = "0.3.5", optional = true }
|
||||
log = { version = "0.4.17", optional = true }
|
||||
|
||||
bitflags = "2.4.1"
|
||||
cortex-m = { version = "0.7.7", features = ["inline-asm"], optional = true }
|
||||
defmt = { version = "0.3.5", optional = true }
|
||||
embassy-boot = { version = "0.2.0", path = "../embassy-boot" }
|
||||
embassy-futures = { version = "0.1.1", path = "../embassy-futures" }
|
||||
embassy-sync = { version = "0.6.0", path = "../embassy-sync" }
|
||||
|
@ -25,3 +25,10 @@ cortex-m-rt = "0.7.0"
|
||||
ed25519-dalek = ["embassy-boot/ed25519-dalek"]
|
||||
ed25519-salty = ["embassy-boot/ed25519-salty"]
|
||||
skip-include = []
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-nrf/defmt",
|
||||
"embassy-boot-nrf/defmt",
|
||||
"embassy-sync/defmt",
|
||||
]
|
||||
|
@ -23,6 +23,7 @@ cortex-m-rt = "0.7.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-sync/defmt",
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, FirmwareUpdater, FirmwareUpdaterConfig};
|
||||
use embassy_embedded_hal::adapter::BlockingAsync;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
|
@ -24,6 +24,7 @@ cortex-m-rt = "0.7.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-sync/defmt",
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
use core::cell::RefCell;
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, BlockingFirmwareUpdater, FirmwareUpdaterConfig};
|
||||
use embassy_executor::Spawner;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
|
@ -24,6 +24,7 @@ cortex-m-rt = "0.7.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-sync/defmt",
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
use core::cell::RefCell;
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, BlockingFirmwareUpdater, FirmwareUpdaterConfig};
|
||||
use embassy_executor::Spawner;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
|
@ -23,6 +23,7 @@ cortex-m-rt = "0.7.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-sync/defmt",
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, FirmwareUpdater, FirmwareUpdaterConfig};
|
||||
use embassy_embedded_hal::adapter::BlockingAsync;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
|
@ -23,6 +23,7 @@ cortex-m-rt = "0.7.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-sync/defmt",
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, FirmwareUpdater, FirmwareUpdaterConfig};
|
||||
use embassy_embedded_hal::adapter::BlockingAsync;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
|
@ -23,6 +23,7 @@ cortex-m-rt = "0.7.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-sync/defmt",
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, FirmwareUpdater, FirmwareUpdaterConfig};
|
||||
use embassy_embedded_hal::adapter::BlockingAsync;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
use core::cell::RefCell;
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, BlockingFirmwareState, FirmwareUpdaterConfig};
|
||||
use embassy_executor::Spawner;
|
||||
|
@ -23,6 +23,7 @@ cortex-m-rt = "0.7.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-sync/defmt",
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_boot_stm32::{AlignedBuffer, FirmwareUpdater, FirmwareUpdaterConfig};
|
||||
use embassy_embedded_hal::adapter::BlockingAsync;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
#[cfg(feature = "defmt-rtt")]
|
||||
#[cfg(feature = "defmt")]
|
||||
use defmt_rtt::*;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
|
@ -19,13 +19,13 @@ cfg-if = "1.0.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-boot-nrf/defmt",
|
||||
"embassy-nrf/defmt",
|
||||
]
|
||||
softdevice = [
|
||||
"embassy-boot-nrf/softdevice",
|
||||
]
|
||||
debug = ["defmt-rtt", "defmt"]
|
||||
|
||||
[profile.dev]
|
||||
debug = 2
|
||||
|
@ -23,10 +23,10 @@ cfg-if = "1.0.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-boot-rp/defmt",
|
||||
"embassy-rp/defmt",
|
||||
]
|
||||
debug = ["defmt-rtt", "defmt"]
|
||||
|
||||
[profile.release]
|
||||
debug = true
|
||||
|
@ -22,8 +22,7 @@ embedded-storage-async = "0.4.0"
|
||||
cfg-if = "1.0.0"
|
||||
|
||||
[features]
|
||||
defmt = ["dep:defmt", "embassy-boot-stm32/defmt", "embassy-stm32/defmt"]
|
||||
debug = ["defmt-rtt", "defmt"]
|
||||
defmt = ["dep:defmt", "dep:defmt-rtt", "embassy-boot-stm32/defmt", "embassy-stm32/defmt"]
|
||||
|
||||
[profile.dev]
|
||||
debug = 2
|
||||
|
@ -21,10 +21,10 @@ cfg-if = "1.0.0"
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-stm32/defmt",
|
||||
]
|
||||
debug = ["defmt-rtt", "defmt"]
|
||||
|
||||
[profile.dev]
|
||||
debug = 2
|
||||
|
@ -24,12 +24,12 @@ embassy-futures = { version = "0.1.1", path = "../../../../embassy-futures" }
|
||||
[features]
|
||||
defmt = [
|
||||
"dep:defmt",
|
||||
"dep:defmt-rtt",
|
||||
"embassy-boot-stm32/defmt",
|
||||
"embassy-stm32/defmt",
|
||||
"embassy-usb/defmt",
|
||||
"embassy-usb-dfu/defmt"
|
||||
]
|
||||
debug = ["defmt-rtt", "defmt"]
|
||||
|
||||
[profile.dev]
|
||||
debug = 2
|
||||
|
@ -14,6 +14,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
feature = "stm32c031c6",
|
||||
feature = "stm32wb55rg",
|
||||
feature = "stm32l073rz",
|
||||
feature = "stm32h503rb",
|
||||
// wrong ram size in stm32-data
|
||||
feature = "stm32wl55jc",
|
||||
feature = "stm32u5a5zj",
|
||||
|
@ -92,7 +92,7 @@ fn options() -> (Config, TestOptions) {
|
||||
)
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "stm32g491re", feature = "stm32g431cb"))]
|
||||
#[cfg(any(feature = "stm32g491re"))]
|
||||
fn options() -> (Config, TestOptions) {
|
||||
info!("G4 config");
|
||||
(
|
||||
|
@ -6,6 +6,7 @@ mod common;
|
||||
use common::*;
|
||||
use defmt::assert_eq;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
use embassy_stm32::spi::{self, Spi};
|
||||
use embassy_stm32::time::Hertz;
|
||||
|
||||
@ -14,18 +15,19 @@ async fn main(_spawner: Spawner) {
|
||||
let p = embassy_stm32::init(config());
|
||||
info!("Hello World!");
|
||||
|
||||
let spi = peri!(p, SPI);
|
||||
let sck = peri!(p, SPI_SCK);
|
||||
let mosi = peri!(p, SPI_MOSI);
|
||||
let miso = peri!(p, SPI_MISO);
|
||||
let mut spi_peri = peri!(p, SPI);
|
||||
let mut sck = peri!(p, SPI_SCK);
|
||||
let mut mosi = peri!(p, SPI_MOSI);
|
||||
let mut miso = peri!(p, SPI_MISO);
|
||||
|
||||
let mut spi_config = spi::Config::default();
|
||||
spi_config.frequency = Hertz(1_000_000);
|
||||
|
||||
let mut spi = Spi::new_blocking(
|
||||
spi, sck, // Arduino D13
|
||||
mosi, // Arduino D11
|
||||
miso, // Arduino D12
|
||||
&mut spi_peri,
|
||||
&mut sck, // Arduino D13
|
||||
&mut mosi, // Arduino D11
|
||||
&mut miso, // Arduino D12
|
||||
spi_config,
|
||||
);
|
||||
|
||||
@ -66,6 +68,22 @@ async fn main(_spawner: Spawner) {
|
||||
defmt::assert!(!embassy_stm32::pac::RCC.apb2enr().read().spi1en());
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "stm32f429zi"))]
|
||||
core::mem::drop(spi);
|
||||
|
||||
// test rx-only configuration
|
||||
let mut spi = Spi::new_blocking_rxonly(&mut spi_peri, &mut sck, &mut miso, spi_config);
|
||||
|
||||
let mut mosi = Output::new(&mut mosi, Level::Low, Speed::VeryHigh);
|
||||
|
||||
mosi.set_high();
|
||||
spi.blocking_read(&mut buf).unwrap();
|
||||
assert_eq!(buf, [0xff; 9]);
|
||||
|
||||
mosi.set_low();
|
||||
spi.blocking_read(&mut buf).unwrap();
|
||||
assert_eq!(buf, [0x00; 9]);
|
||||
|
||||
info!("Test OK");
|
||||
cortex_m::asm::bkpt();
|
||||
}
|
||||
|
@ -6,34 +6,32 @@ mod common;
|
||||
use common::*;
|
||||
use defmt::assert_eq;
|
||||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::gpio::{Level, Output, Speed};
|
||||
use embassy_stm32::spi::{self, Spi};
|
||||
use embassy_stm32::time::Hertz;
|
||||
use embassy_stm32::{into_ref, Peripheral as _};
|
||||
|
||||
#[embassy_executor::main]
|
||||
async fn main(_spawner: Spawner) {
|
||||
let p = embassy_stm32::init(config());
|
||||
info!("Hello World!");
|
||||
|
||||
let spi_peri = peri!(p, SPI);
|
||||
let sck = peri!(p, SPI_SCK);
|
||||
let mosi = peri!(p, SPI_MOSI);
|
||||
let miso = peri!(p, SPI_MISO);
|
||||
let tx_dma = peri!(p, SPI_TX_DMA);
|
||||
let rx_dma = peri!(p, SPI_RX_DMA);
|
||||
|
||||
into_ref!(spi_peri, sck, mosi, miso, tx_dma, rx_dma);
|
||||
let mut spi_peri = peri!(p, SPI);
|
||||
let mut sck = peri!(p, SPI_SCK);
|
||||
let mut mosi = peri!(p, SPI_MOSI);
|
||||
let mut miso = peri!(p, SPI_MISO);
|
||||
let mut tx_dma = peri!(p, SPI_TX_DMA);
|
||||
let mut rx_dma = peri!(p, SPI_RX_DMA);
|
||||
|
||||
let mut spi_config = spi::Config::default();
|
||||
spi_config.frequency = Hertz(1_000_000);
|
||||
|
||||
let mut spi = Spi::new(
|
||||
spi_peri.reborrow(),
|
||||
sck.reborrow(), // Arduino D13
|
||||
mosi.reborrow(), // Arduino D11
|
||||
miso.reborrow(), // Arduino D12
|
||||
tx_dma.reborrow(),
|
||||
rx_dma.reborrow(),
|
||||
&mut spi_peri,
|
||||
&mut sck, // Arduino D13
|
||||
&mut mosi, // Arduino D11
|
||||
&mut miso, // Arduino D12
|
||||
&mut tx_dma,
|
||||
&mut rx_dma,
|
||||
spi_config,
|
||||
);
|
||||
|
||||
@ -85,51 +83,36 @@ async fn main(_spawner: Spawner) {
|
||||
core::mem::drop(spi);
|
||||
|
||||
// test rx-only configuration
|
||||
let mut spi = Spi::new_rxonly(
|
||||
&mut spi_peri,
|
||||
&mut sck,
|
||||
&mut miso,
|
||||
// SPIv1/f1 requires txdma even if rxonly.
|
||||
#[cfg(not(any(
|
||||
feature = "stm32h503rb",
|
||||
feature = "stm32h563zi",
|
||||
feature = "stm32h753zi",
|
||||
feature = "stm32h755zi",
|
||||
feature = "stm32h7a3zi",
|
||||
feature = "stm32h7s3l8",
|
||||
feature = "stm32u585ai",
|
||||
feature = "stm32u5a5zj",
|
||||
feature = "stm32wba52cg",
|
||||
)))]
|
||||
&mut tx_dma,
|
||||
&mut rx_dma,
|
||||
spi_config,
|
||||
);
|
||||
|
||||
// stm32f207zg - spi_v1
|
||||
// stm32f103c8 - spi_f1
|
||||
// stm32g491re - spi_v2
|
||||
// stm32h753zi - spi_v3
|
||||
// stm32h563zi - spi_v4
|
||||
// stm32wba52cg - spi_v5
|
||||
let mut mosi = Output::new(&mut mosi, Level::Low, Speed::VeryHigh);
|
||||
|
||||
#[cfg(any(stm32f207zg, stm32f103c8, stm32g491re, stm32h753zi, stm32h563zi, stm32wba52cg))]
|
||||
{
|
||||
let mut spi = {
|
||||
#[cfg(stm32f207zg, stm32f103c8, stm32g491re)]
|
||||
{
|
||||
Spi::new_rxonly(
|
||||
spi_peri.reborrow(),
|
||||
sck.reborrow(),
|
||||
miso.reborrow(),
|
||||
tx_dma.reborrow(),
|
||||
rx_dma.reborrow(),
|
||||
spi_config,
|
||||
)
|
||||
}
|
||||
#[cfg(stm32h753zi, stm32h563zi, stm32wba52cg)]
|
||||
{
|
||||
Spi::new_rxonly(
|
||||
spi_peri.reborrow(),
|
||||
sck.reborrow(),
|
||||
miso.reborrow(),
|
||||
rx_dma.reborrow(),
|
||||
spi_config,
|
||||
)
|
||||
}
|
||||
};
|
||||
mosi.set_high();
|
||||
spi.read(&mut buf).await.unwrap();
|
||||
assert_eq!(buf, [0xff; 9]);
|
||||
|
||||
use embassy_stm32::gpio;
|
||||
let mut mosi = gpio::Output::new(mosi.reborrow(), gpio::Level::Low, gpio::Speed::Low);
|
||||
|
||||
mosi.set_high();
|
||||
spi.read(&mut buf).await.unwrap();
|
||||
assert_eq!(buf, [0xff; 9]);
|
||||
|
||||
mosi.set_low();
|
||||
spi.read(&mut buf).await.unwrap();
|
||||
assert_eq!(buf, [0x00; 9]);
|
||||
};
|
||||
mosi.set_low();
|
||||
spi.read(&mut buf).await.unwrap();
|
||||
assert_eq!(buf, [0x00; 9]);
|
||||
|
||||
info!("Test OK");
|
||||
cortex_m::asm::bkpt();
|
||||
|
Loading…
Reference in New Issue
Block a user