[package]
edition = "2021"
rust-version = "1.60"
authors = ["Daniel Egger <daniel@eggers-club.de>"]
categories = [
"embedded",
"hardware-support",
"no-std",
]
description = "Peripheral access API for STM32F4 series microcontrollers"
documentation = "https://docs.rs/stm32f4xx-hal"
keywords = [
"arm",
"cortex-m",
"stm32f4xx",
"hal",
]
license = "0BSD"
name = "stm32f4xx-hal"
readme = "README.md"
repository = "https://github.com/stm32-rs/stm32f4xx-hal"
version = "0.13.2"
[package.metadata.docs.rs]
features = ["stm32f429", "usb_fs", "can", "i2s", "fsmc_lcd"]
targets = ["thumbv7em-none-eabihf"]
[dependencies]
defmt = { version = "0.3.1", optional = true }
bxcan = { version = "0.6", optional = true }
cortex-m = "0.7.4"
cortex-m-rt = "0.7"
nb = "1"
rand_core = "0.6"
stm32f4 = "0.14.0"
synopsys-usb-otg = { version = "0.2.0", features = ["cortex-m"], optional = true }
sdio-host = { version = "0.6.0", optional = true }
embedded-dma = "0.2.0"
bare-metal = { version = "1" }
void = { default-features = false, version = "1.0.2" }
embedded-hal = { features = ["unproven"], version = "0.2.7" }
display-interface = { version = "0.4.1", optional = true }
fugit = "0.3.5"
fugit-timer = "0.1.3"
rtic-monotonic = { version = "1.0", optional = true }
bitflags = "1.3.2"
embedded-storage = "0.2"
[dependencies.time]
version = "0.3"
default-features = false
[dependencies.embedded-hal-one]
version = "=1.0.0-alpha.7"
package = "embedded-hal"
[dependencies.stm32_i2s_v12x]
version = "0.2.0"
optional = true
[dev-dependencies]
defmt-rtt = "0.3.2"
panic-semihosting = "0.5.3"
cortex-m-semihosting = "0.3.3"
heapless = "0.7.5"
panic-halt = "0.2.0"
ssd1306 = "0.7.0"
embedded-graphics = "0.7.1"
usb-device = "0.2.5"
usbd-serial = "0.1.0"
micromath = "2"
cortex-m-rtic = "1.0"
dwt-systick-monotonic = "1.0"
st7789 = "0.6.1"
panic-rtt-target = { version = "0.1.2", features = ["cortex-m"] }
rtt-target = { version = "0.3.1", features = ["cortex-m"] }
display-interface-spi = "0.4"
ist7920 = "0.1.0"
smart-leds = "0.3.0"
ws2812-spi = { version = "0.4.0", features = [] }
hd44780-driver = "0.4.0"
[dev-dependencies.time]
version = "0.3"
default-features = false
features = ["macros"]
[features]
device-selected = []
rt = []
stm32f401 = ["stm32f4/stm32f401", "device-selected", "gpio-f401",
"i2c3",
"otg-fs",
"sdio",
"spi3", "spi4",
"tim2",
]
stm32f405 = ["stm32f4/stm32f405", "device-selected", "gpio-f417",
"adc2", "adc3",
"can1", "can2",
"dac",
"fsmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3",
"tim2", "tim8",
"usart3", "uart4", "uart5",
]
stm32f407 = ["stm32f4/stm32f407", "device-selected", "gpio-f417",
"adc2", "adc3",
"can1", "can2",
"dac",
"fsmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3",
"tim2", "tim8",
"usart3", "uart4", "uart5",
]
stm32f410 = ["stm32f4/stm32f410", "device-selected", "gpio-f410",
"dac",
"spi5",
]
stm32f411 = ["stm32f4/stm32f411", "device-selected", "gpio-f411",
"i2c3",
"otg-fs",
"sdio",
"tim2",
"spi3", "spi4", "spi5",
]
stm32f412 = ["stm32f4/stm32f412", "device-selected", "gpio-f412",
"can1", "can2",
"fsmc",
"i2c3",
"otg-fs",
"rng",
"sdio",
"spi3", "spi4", "spi5",
"tim2", "tim8",
"usart3",
]
stm32f413 = ["stm32f4/stm32f413", "device-selected", "gpio-f413",
"can1", "can2", "can3",
"dac",
"fsmc",
"fmpi2c1",
"i2c3",
"otg-fs",
"rng",
"sdio",
"spi3", "spi4", "spi5",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8", "uart9", "uart10",
]
stm32f415 = ["stm32f4/stm32f405", "device-selected", "gpio-f417",
"adc2", "adc3",
"can1", "can2",
"dac",
"fsmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3",
"tim2", "tim8",
"usart3", "uart4", "uart5",
]
stm32f417 = ["stm32f4/stm32f407", "device-selected", "gpio-f417",
"adc2", "adc3",
"can1", "can2",
"dac",
"fsmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3",
"tim2", "tim8",
"usart3", "uart4", "uart5",
]
stm32f423 = ["stm32f4/stm32f413", "device-selected", "gpio-f413",
"can1", "can2", "can3",
"dac",
"fsmc",
"fmpi2c1",
"i2c3",
"otg-fs",
"rng",
"sdio",
"spi3", "spi4", "spi5",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8", "uart9", "uart10",
]
stm32f427 = ["stm32f4/stm32f427", "device-selected", "gpio-f427",
"adc2", "adc3",
"can1", "can2",
"dac",
"fsmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3", "spi4", "spi5", "spi6",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8",
]
stm32f429 = ["stm32f4/stm32f429", "device-selected", "gpio-f427",
"adc2", "adc3",
"can1", "can2",
"dac",
"fmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3", "spi4", "spi5", "spi6",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8",
]
stm32f437 = ["stm32f4/stm32f427", "device-selected", "gpio-f427",
"adc2", "adc3",
"can1", "can2",
"dac",
"fsmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3", "spi4", "spi5", "spi6",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8",
]
stm32f439 = ["stm32f4/stm32f429", "device-selected", "gpio-f427",
"adc2", "adc3",
"can1", "can2",
"dac",
"fmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3", "spi4", "spi5", "spi6",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8",
]
stm32f446 = ["stm32f4/stm32f446", "device-selected", "gpio-f446",
"adc2", "adc3",
"can1", "can2",
"dac",
"fmc",
"i2c3",
"otg-fs",
"otg-hs",
"spi3", "spi4",
"tim2", "tim8",
"usart3", "uart4", "uart5",
]
stm32f469 = ["stm32f4/stm32f469", "device-selected", "gpio-f469",
"adc2", "adc3",
"can1", "can2",
"dac",
"fmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3", "spi4", "spi5", "spi6",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8",
]
stm32f479 = ["stm32f4/stm32f469", "device-selected", "gpio-f469",
"adc2", "adc3",
"can1", "can2",
"dac",
"fmc",
"i2c3",
"otg-fs",
"otg-hs",
"rng",
"sdio",
"spi3", "spi4", "spi5", "spi6",
"tim2", "tim8",
"usart3", "uart4", "uart5", "uart7", "uart8",
]
gpio-f401 = ["gpiod", "gpioe"]
gpio-f410 = []
gpio-f411 = ["gpiod", "gpioe"]
gpio-f412 = ["gpiod", "gpioe", "gpiof", "gpiog"]
gpio-f413 = ["gpiod", "gpioe", "gpiof", "gpiog"]
gpio-f417 = ["gpiod", "gpioe", "gpiof", "gpiog", "gpioi"]
gpio-f427 = ["gpiod", "gpioe", "gpiof", "gpiog", "gpioi", "gpioj", "gpiok"]
gpio-f446 = ["gpiod", "gpioe", "gpiof", "gpiog"]
gpio-f469 = ["gpiod", "gpioe", "gpiof", "gpiog", "gpioi", "gpioj", "gpiok"]
usb_fs = ["synopsys-usb-otg", "synopsys-usb-otg/fs"]
usb_hs = ["synopsys-usb-otg", "synopsys-usb-otg/hs"]
can = ["bxcan"]
i2s = ["stm32_i2s_v12x"]
fsmc_lcd = ["display-interface"]
defmt = ["dep:defmt", "fugit/defmt"]
adc2 = []
adc3 = []
can1 = []
can2 = []
can3 = []
dac = []
fmc = []
fsmc = []
fmpi2c1 = []
gpiod = []
gpioe = []
gpiof = []
gpiog = []
gpioi = []
gpioj = []
gpiok = []
i2c3 = []
otg-fs = []
otg-hs = []
rng = []
sdio = []
spi3 = []
spi4 = []
spi5 = []
spi6 = []
tim2 = []
tim8 = []
usart3 = []
uart4 = []
uart5 = []
uart7 = []
uart8 = []
uart9 = []
uart10 = []
rtic = ["rtic-monotonic"]
[profile.dev]
debug = true
lto = true
[profile.release]
debug = true
lto = true
opt-level = "s"
[[example]]
name = "blinky-timer-irq"
required-features = ["tim2"]
[[example]]
name = "usb_serial"
required-features = ["otg-fs", "usb_fs"]
[[example]]
name = "sd"
required-features = ["gpiod", "sdio", "sdio-host"]
[[example]]
name = "delay-syst-blinky"
required-features = ["device-selected"]
[[example]]
name = "delay-timer-blinky"
required-features = ["device-selected"]
[[example]]
name = "dwt-blinky"
required-features = ["gpiog"]
[[example]]
name = "ssd1306-image"
required-features = ["device-selected"]
[[example]]
name = "stopwatch-with-ssd1306-and-interrupts"
required-features = ["tim2"]
[[example]]
name = "analog-stopwatch-with-spi-ssd1306"
required-features = ["spi4", "tim2", "gpioe", "gpiog"]
[[example]]
name = "rng-display"
required-features = ["rng"]
[[example]]
name = "qei"
required-features = ["tim2"]
[[example]]
name = "can-send"
required-features = ["can", "stm32f405"]
[[example]]
name = "i2s-audio-out"
required-features = ["stm32f411", "i2s"]
[[example]]
name = "i2s-audio-out-dma"
required-features = ["stm32f411", "i2s"]
[[example]]
name = "rtic"
required-features = ["gpiod", "rtic"]
[[example]]
name = "rtic-tick"
required-features = ["tim2", "rtic"]
[[example]]
name = "adc_dma_rtic"
required-features = ["device-selected", "rtic"]
[[example]]
name = "serial-9bit"
required-features = ["gpiod"]
[[example]]
name = "st7789-lcd"
required-features = ["fsmc", "fsmc_lcd"]
[[example]]
name = "f413disco_lcd_ferris"
required-features = ["gpiod", "gpioe", "gpiof", "gpiog", "fsmc", "fsmc_lcd"]
[[example]]
name= "pwm-input"
required-features = ["tim8"]
[[example]]
name= "pwm-sinus"
required-features = ["stm32f411"]
[[example]]
name = "ist7920_bidi_normal_spi"
required-features = ["device-selected"]
[[example]]
name = "spi_dma"
required-features = ["stm32f411"]
[[example]]
name = "dynamic_gpio"
required-features = ["device-selected"]
[[example]]
name = "rtc"
required-features = ["device-selected"]
[[example]]
name = "hd44780"
required-features = ["device-selected"]
[[example]]
name = "spi_slave_dma_rtic"
required-features = ["stm32f411", "rtic"]