stm32l0xx-hal 0.6.2

Peripheral access API for STM32L0 series microcontrollers
Documentation
[package]
edition = "2018"
authors = [
    "Arko <arko2600@gmail.com>",
]
categories = [
    "embedded",
    "hardware-support",
    "no-std",
]
description = "Peripheral access API for STM32L0 series microcontrollers"
documentation = "https://docs.rs/crate/stm32l0xx-hal"

keywords = [
    "arm",
    "cortex-m",
    "stm32l0xx",
    "hal",
]
license = "0BSD"
name = "stm32l0xx-hal"
readme = "README.md"
repository = "https://github.com/stm32-rs/stm32l0xx-hal"
version = "0.6.2"

[package.metadata.docs.rs]
features = ["stm32l0x2", "rt", "stm32-usbd"]
targets = ["thumbv6m-none-eabi"]

[dependencies]
stm32l0 = "0.10.0"
as-slice = "0.1.0"
embedded-hal = { version = "0.2.3", features = ["unproven"] }
cortex-m = {version = "0.6.1", features = ["const-fn"] }
cortex-m-rt = "0.6.8"
cortex-m-semihosting = "0.3.2"
void = { version = "1.0.2", default-features = false }
cast = { version = "0.2.2", default-features = false }
nb = "0.1.2"
stm32-usbd = { version = "0.5.0", features = ["ram_access_2x16"], optional = true }

[dev-dependencies]
aligned = "0.3.1"
heapless = "0.5.0"
panic-halt = "0.2.0"
panic-semihosting = "0.5.1"
cortex-m-rtfm = "0.4.3"
usb-device = "0.2.3"
usbd-serial = "0.1.0"

[features]
# Miscellaneaous features
rt = ["stm32l0/rt"]
disable-linker-script = []

# STM32L0 subfamilies
# (Warning: Some peripherals, e.g. GPIO, don't follow this subfamily grouping.)
stm32l0x1 = ["stm32l0/stm32l0x1"]
stm32l0x2 = ["stm32l0/stm32l0x2"]
stm32l0x3 = ["stm32l0/stm32l0x3"]

# Legacy features (don't use those anymore)
stm32l052 = ["stm32l0x2"]
stm32l072 = ["stm32l0x2"]
stm32l082 = ["stm32l0x2"]

# Features based on the GPIO peripheral version.
# This determines the pin function mapping of the MCU.
# The features correspond to the product categories.
#
# Note: The easiest way to pick the proper io-* feature is to apply
# the matching mcu-* feature for your MCU!
io-STM32L021 = [] # Product category 1
io-STM32L031 = [] # Product category 2
io-STM32L051 = [] # Product category 3
io-STM32L071 = [] # Product category 5

# Physical packages
ewlcsp49 = []
lqfp32 = []
lqfp48 = []
lqfp64 = []
lqfp100 = []
tfbga64 = []
tssop14 = []
tssop20 = []
ufbga64 = []
ufbga100 = []
ufqfpn20 = []
ufqfpn28 = []
ufqfpn32 = []
ufqfpn48 = []
wlcsp25 = []
wlcsp36 = []
wlcsp49 = []

# MCUs
#
# Note: These are just aliases for the proper io-* feature and physical
# package. Do *not* use these features in any `cfg` attributes in the HAL!
mcu-STM32L010C6Tx = ["io-STM32L031", "lqfp48"]
mcu-STM32L010F4Px = ["io-STM32L021", "tssop20"]
mcu-STM32L010K4Tx = ["io-STM32L021", "lqfp32"]
mcu-STM32L010K8Tx = ["io-STM32L051", "lqfp32"]
mcu-STM32L010R8Tx = ["io-STM32L051", "lqfp64"]
mcu-STM32L010RBTx = ["io-STM32L071", "lqfp64"]
mcu-STM32L011D3Px = ["io-STM32L021", "stm32l0x1", "tssop14"]
mcu-STM32L011D4Px = ["io-STM32L021", "stm32l0x1", "tssop14"]
mcu-STM32L011E3Yx = ["io-STM32L021", "stm32l0x1", "wlcsp25"]
mcu-STM32L011E4Yx = ["io-STM32L021", "stm32l0x1", "wlcsp25"]
mcu-STM32L011F3Px = ["io-STM32L021", "stm32l0x1", "tssop20"]
mcu-STM32L011F3Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn20"]
mcu-STM32L011F4Px = ["io-STM32L021", "stm32l0x1", "tssop20"]
mcu-STM32L011F4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn20"]
mcu-STM32L011G3Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn28"]
mcu-STM32L011G4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn28"]
mcu-STM32L011K3Tx = ["io-STM32L021", "stm32l0x1", "lqfp32"]
mcu-STM32L011K3Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn32"]
mcu-STM32L011K4Tx = ["io-STM32L021", "stm32l0x1", "lqfp32"]
mcu-STM32L011K4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn32"]
mcu-STM32L021D4Px = ["io-STM32L021", "stm32l0x1", "tssop14"]
mcu-STM32L021F4Px = ["io-STM32L021", "stm32l0x1", "tssop20"]
mcu-STM32L021F4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn20"]
mcu-STM32L021G4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn28"]
mcu-STM32L021K4Tx = ["io-STM32L021", "stm32l0x1", "lqfp32"]
mcu-STM32L021K4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn32"]
mcu-STM32L031C4Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
mcu-STM32L031C6Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
mcu-STM32L031C6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn48"]
mcu-STM32L031E4Yx = ["io-STM32L031", "stm32l0x1", "wlcsp25"]
mcu-STM32L031E6Yx = ["io-STM32L031", "stm32l0x1", "wlcsp25"]
mcu-STM32L031F4Px = ["io-STM32L031", "stm32l0x1", "tssop20"]
mcu-STM32L031F6Px = ["io-STM32L031", "stm32l0x1", "tssop20"]
mcu-STM32L031G4Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
mcu-STM32L031G6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
mcu-STM32L031G6UxS = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
mcu-STM32L031K4Tx = ["io-STM32L031", "stm32l0x1", "lqfp32"]
mcu-STM32L031K4Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn32"]
mcu-STM32L031K6Tx = ["io-STM32L031", "stm32l0x1", "lqfp32"]
mcu-STM32L031K6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn32"]
mcu-STM32L041C4Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
mcu-STM32L041C6Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
mcu-STM32L041E6Yx = ["io-STM32L031", "stm32l0x1", "wlcsp25"]
mcu-STM32L041F6Px = ["io-STM32L031", "stm32l0x1", "tssop20"]
mcu-STM32L041G6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
mcu-STM32L041G6UxS = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
mcu-STM32L041K6Tx = ["io-STM32L031", "stm32l0x1", "lqfp32"]
mcu-STM32L041K6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn32"]
mcu-STM32L051C6Tx = ["io-STM32L051", "stm32l0x1", "lqfp48"]
mcu-STM32L051C8Tx = ["io-STM32L051", "stm32l0x1", "lqfp48"]
mcu-STM32L051K6Tx = ["io-STM32L051", "stm32l0x1", "lqfp32"]
mcu-STM32L051K6Ux = ["io-STM32L051", "stm32l0x1", "ufqfpn32"]
mcu-STM32L051K8Tx = ["io-STM32L051", "stm32l0x1", "lqfp32"]
mcu-STM32L051K8Ux = ["io-STM32L051", "stm32l0x1", "ufqfpn32"]
mcu-STM32L051R6Hx = ["io-STM32L051", "stm32l0x1", "tfbga64"]
mcu-STM32L051R6Tx = ["io-STM32L051", "stm32l0x1", "lqfp64"]
mcu-STM32L051R8Hx = ["io-STM32L051", "stm32l0x1", "tfbga64"]
mcu-STM32L051R8Tx = ["io-STM32L051", "stm32l0x1", "lqfp64"]
mcu-STM32L051T6Yx = ["io-STM32L051", "stm32l0x1", "wlcsp36"]
mcu-STM32L051T8Yx = ["io-STM32L051", "stm32l0x1", "wlcsp36"]
mcu-STM32L052C6Tx = ["io-STM32L051", "stm32l0x2", "lqfp48"]
mcu-STM32L052C8Tx = ["io-STM32L051", "stm32l0x2", "lqfp48"]
mcu-STM32L052K6Tx = ["io-STM32L051", "stm32l0x2", "lqfp32"]
mcu-STM32L052K6Ux = ["io-STM32L051", "stm32l0x2", "ufqfpn32"]
mcu-STM32L052K8Tx = ["io-STM32L051", "stm32l0x2", "lqfp32"]
mcu-STM32L052K8Ux = ["io-STM32L051", "stm32l0x2", "ufqfpn32"]
mcu-STM32L052R6Hx = ["io-STM32L051", "stm32l0x2", "tfbga64"]
mcu-STM32L052R6Tx = ["io-STM32L051", "stm32l0x2", "lqfp64"]
mcu-STM32L052R8Hx = ["io-STM32L051", "stm32l0x2", "tfbga64"]
mcu-STM32L052R8Tx = ["io-STM32L051", "stm32l0x2", "lqfp64"]
mcu-STM32L052T6Yx = ["io-STM32L051", "stm32l0x2", "wlcsp36"]
mcu-STM32L052T8Fx = ["io-STM32L051", "stm32l0x2", "wlcsp36"]
mcu-STM32L052T8Yx = ["io-STM32L051", "stm32l0x2", "wlcsp36"]
mcu-STM32L053C6Tx = ["io-STM32L051", "stm32l0x3", "lqfp48"]
mcu-STM32L053C8Tx = ["io-STM32L051", "stm32l0x3", "lqfp48"]
mcu-STM32L053R6Hx = ["io-STM32L051", "stm32l0x3", "tfbga64"]
mcu-STM32L053R6Tx = ["io-STM32L051", "stm32l0x3", "lqfp64"]
mcu-STM32L053R8Hx = ["io-STM32L051", "stm32l0x3", "tfbga64"]
mcu-STM32L053R8Tx = ["io-STM32L051", "stm32l0x3", "lqfp64"]
mcu-STM32L062K8Tx = ["io-STM32L051", "stm32l0x2", "lqfp32"]
mcu-STM32L062K8Ux = ["io-STM32L051", "stm32l0x2", "ufqfpn32"]
mcu-STM32L063C8Tx = ["io-STM32L051", "stm32l0x3", "lqfp48"]
mcu-STM32L063R8Tx = ["io-STM32L051", "stm32l0x3", "lqfp64"]
mcu-STM32L071C8Tx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
mcu-STM32L071CBTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
mcu-STM32L071CBYx = ["io-STM32L071", "stm32l0x1", "wlcsp49"]
mcu-STM32L071CZTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
mcu-STM32L071CZYx = ["io-STM32L071", "stm32l0x1", "wlcsp49"]
mcu-STM32L071K8Ux = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
mcu-STM32L071KBTx = ["io-STM32L071", "stm32l0x1", "lqfp32"]
mcu-STM32L071KBUx = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
mcu-STM32L071KZTx = ["io-STM32L071", "stm32l0x1", "lqfp32"]
mcu-STM32L071KZUx = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
mcu-STM32L071RBHx = ["io-STM32L071", "stm32l0x1", "tfbga64"]
mcu-STM32L071RBTx = ["io-STM32L071", "stm32l0x1", "lqfp64"]
mcu-STM32L071RZHx = ["io-STM32L071", "stm32l0x1", "tfbga64"]
mcu-STM32L071RZTx = ["io-STM32L071", "stm32l0x1", "lqfp64"]
mcu-STM32L071V8Ix = ["io-STM32L071", "stm32l0x1", "ufbga100"]
mcu-STM32L071V8Tx = ["io-STM32L071", "stm32l0x1", "lqfp100"]
mcu-STM32L071VBIx = ["io-STM32L071", "stm32l0x1", "ufbga100"]
mcu-STM32L071VBTx = ["io-STM32L071", "stm32l0x1", "lqfp100"]
mcu-STM32L071VZIx = ["io-STM32L071", "stm32l0x1", "ufbga100"]
mcu-STM32L071VZTx = ["io-STM32L071", "stm32l0x1", "lqfp100"]
mcu-STM32L072CBTx = ["io-STM32L071", "stm32l0x2", "lqfp48"]
mcu-STM32L072CBYx = ["io-STM32L071", "stm32l0x2", "wlcsp49"]
mcu-STM32L072CZEx = ["io-STM32L071", "stm32l0x2", "ewlcsp49"]
mcu-STM32L072CZTx = ["io-STM32L071", "stm32l0x2", "lqfp48"]
mcu-STM32L072CZYx = ["io-STM32L071", "stm32l0x2", "wlcsp49"]
mcu-STM32L072KBTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
mcu-STM32L072KBUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
mcu-STM32L072KZTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
mcu-STM32L072KZUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
mcu-STM32L072RBHx = ["io-STM32L071", "stm32l0x2", "tfbga64"]
mcu-STM32L072RBIx = ["io-STM32L071", "stm32l0x2", "ufbga64"]
mcu-STM32L072RBTx = ["io-STM32L071", "stm32l0x2", "lqfp64"]
mcu-STM32L072RZHx = ["io-STM32L071", "stm32l0x2", "tfbga64"]
mcu-STM32L072RZIx = ["io-STM32L071", "stm32l0x2", "ufbga64"]
mcu-STM32L072RZTx = ["io-STM32L071", "stm32l0x2", "lqfp64"]
mcu-STM32L072V8Ix = ["io-STM32L071", "stm32l0x2", "ufbga100"]
mcu-STM32L072V8Tx = ["io-STM32L071", "stm32l0x2", "lqfp100"]
mcu-STM32L072VBIx = ["io-STM32L071", "stm32l0x2", "ufbga100"]
mcu-STM32L072VBTx = ["io-STM32L071", "stm32l0x2", "lqfp100"]
mcu-STM32L072VZIx = ["io-STM32L071", "stm32l0x2", "ufbga100"]
mcu-STM32L072VZTx = ["io-STM32L071", "stm32l0x2", "lqfp100"]
mcu-STM32L073CBTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
mcu-STM32L073CZTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
mcu-STM32L073RBHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
mcu-STM32L073RBTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
mcu-STM32L073RZHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
mcu-STM32L073RZIx = ["io-STM32L071", "stm32l0x3", "ufbga64"]
mcu-STM32L073RZTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
mcu-STM32L073V8Ix = ["io-STM32L071", "stm32l0x3", "ufbga100"]
mcu-STM32L073V8Tx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
mcu-STM32L073VBIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
mcu-STM32L073VBTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
mcu-STM32L073VZIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
mcu-STM32L073VZTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
mcu-STM32L081CBTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
mcu-STM32L081CZTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
mcu-STM32L081KZTx = ["io-STM32L071", "stm32l0x1", "lqfp32"]
mcu-STM32L081KZUx = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
mcu-STM32L082CZYx = ["io-STM32L071", "stm32l0x2", "wlcsp49"]
mcu-STM32L082KBTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
mcu-STM32L082KBUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
mcu-STM32L082KZTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
mcu-STM32L082KZUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
mcu-STM32L083CBTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
mcu-STM32L083CZTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
mcu-STM32L083RBHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
mcu-STM32L083RBTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
mcu-STM32L083RZHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
mcu-STM32L083RZTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
mcu-STM32L083V8Ix = ["io-STM32L071", "stm32l0x3", "ufbga100"]
mcu-STM32L083V8Tx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
mcu-STM32L083VBIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
mcu-STM32L083VBTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
mcu-STM32L083VZIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
mcu-STM32L083VZTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]

[profile.dev]
codegen-units = 1
incremental = false
debug = true
opt-level = "s"

[profile.release]
codegen-units = 1
lto = true
debug = true
opt-level = "s"


[[example]]
name = "adc_cont"
required-features = ["stm32l0x2", "io-STM32L071"]

[[example]]
name = "adc_multi"
required-features = ["stm32l0x2", "io-STM32L071"]

[[example]]
name = "adc_trig"
required-features = ["stm32l0x2", "io-STM32L071"]

[[example]]
name = "aes_ecb"
required-features = ["stm32l082"]

[[example]]
name = "aes_cbc"
required-features = ["stm32l082"]

[[example]]
name = "aes_ctr"
required-features = ["stm32l082"]

[[example]]
name = "aes_ctr_dma"
required-features = ["stm32l082"]

[[example]]
name = "button_irq"
required-features = ["rt"]

[[example]]
name = "button_irq_rtfm"
required-features = ["rt"]

[[example]]
name = "flash"
required-features = ["rt","stm32l082"]

[[example]]
name = "i2c"
required-features = ["rt","stm32l0x2","io-STM32L071"]

[[example]]
name = "i2c_dma"
required-features = ["rt","stm32l0x2","io-STM32L071"]

[[example]]
name = "rng"
required-features = ["rt","stm32l0x2"]

[[example]]
name = "rtc"
required-features = ["stm32l0x2", "io-STM32L071"]

[[example]]
name = "serial"
required-features = ["stm32l0x2", "io-STM32L071"]

[[example]]
name = "serial_dma"
required-features = ["stm32l0x2", "io-STM32L071"]

[[example]]
name = "serial_dma_async"
required-features = ["stm32l0x2", "io-STM32L071"]

[[example]]
name = "timer"
required-features = ["rt"]

[[example]]
name = "timer_interrupt_rtfm"
required-features = ["rt"]

[[example]]
name = "adc_pwm"
required-features = ["stm32l0x1"]

[[example]]
name = "usb_serial"
required-features = ["rt", "stm32l0x2", "stm32-usbd"]