HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
hf::stm32 Namespace Reference

Namespaces

namespace  pin
 Convenience aliases for common pins (PA0, PA1, ... PK15)
 

Enumerations

enum class  GpioPort : hf_u8_t {
  A = 0 , B = 1 , C = 2 , D = 3 ,
  E = 4 , F = 5 , G = 6 , H = 7 ,
  I = 8 , J = 9 , K = 10
}
 GPIO port index (A=0, B=1, ... K=10) More...
 
enum class  HalStatus : hf_u8_t { OK = 0x00U , ERROR = 0x01U , BUSY = 0x02U , TIMEOUT = 0x03U }
 STM32 HAL status codes (mirrors HAL_StatusTypeDef without HAL include) More...
 

Functions

constexpr hf_pin_num_t EncodePin (GpioPort port, hf_u8_t pin) noexcept
 Encode (port, pin) → hf_pin_num_t.
 
constexpr hf_u8_t DecodePinPort (hf_pin_num_t pin) noexcept
 Decode hf_pin_num_t → port index.
 
constexpr hf_u8_t DecodePinIndex (hf_pin_num_t pin) noexcept
 Decode hf_pin_num_t → pin within port (0-15)
 
constexpr hf_u16_t DecodePinMask (hf_pin_num_t pin) noexcept
 Decode hf_pin_num_t → STM32 HAL pin mask (GPIO_PIN_0 .. GPIO_PIN_15)
 
constexpr HalStatus ToHalStatus (hf_u32_t raw_status) noexcept
 Convert raw HAL_StatusTypeDef to our enum.
 
constexpr bool IsHalOk (hf_u32_t raw_status) noexcept
 Check if a raw HAL status indicates success.
 

Variables

static constexpr hf_u8_t kMaxGpioPorts = 11
 Maximum GPIO ports (A..K = 11 on largest STM32H7)
 
static constexpr hf_u8_t kPinsPerPort = 16
 Maximum pins per GPIO port.
 
static constexpr hf_u16_t kMaxGpioPins = kMaxGpioPorts * kPinsPerPort
 Maximum total GPIO pins (ports * pins_per_port)
 
static constexpr hf_u8_t kAdcMaxChannels = 20
 ADC maximum channels (typical STM32F4/H7)
 
static constexpr hf_u8_t kAdcMaxResolutionBits = 16
 ADC maximum resolution (bits)
 
static constexpr hf_u8_t kAdcDefaultResolutionBits = 12
 
static constexpr float kAdcDefaultVrefV = 3.3f
 ADC reference voltage (V) — most STM32 boards.
 
static constexpr hf_u32_t kI2cMaxFreqHz = 1000000
 I2C limits.
 
static constexpr hf_u32_t kI2cStandardFreqHz = 100000
 
static constexpr hf_u32_t kI2cFastFreqHz = 400000
 
static constexpr hf_u32_t kI2cFastPlusFreqHz = 1000000
 
static constexpr hf_u16_t kI2cMaxTransferBytes = 65535
 
static constexpr hf_u32_t kSpiMaxFreqHz = 50000000
 SPI limits.
 
static constexpr hf_u32_t kSpiDefaultFreqHz = 1000000
 
static constexpr hf_u16_t kSpiMaxTransferBytes = 65535
 
static constexpr hf_u32_t kUartMaxBaudRate = 10000000
 UART limits.
 
static constexpr hf_u32_t kUartDefaultBaudRate = 115200
 
static constexpr hf_u16_t kUartDefaultBufferSize = 256
 
static constexpr hf_u64_t kTimerMinPeriodUs = 1
 Timer limits (in microseconds)
 
static constexpr hf_u64_t kTimerMaxPeriodUs = 4294967295ULL
 
static constexpr hf_u64_t kTimerResolutionUs = 1
 
static constexpr hf_u32_t kPwmMaxFreqHz = 1000000
 PWM limits.
 
static constexpr hf_u32_t kPwmMinFreqHz = 1
 
static constexpr hf_u16_t kPwmMaxResolution = 65535
 
static constexpr hf_u8_t kPwmMaxChannelsPerTimer = 4
 
static constexpr hf_u32_t kCanMaxBaudRate = 1000000
 CAN limits.
 
static constexpr hf_u32_t kCanFdMaxBaudRate = 8000000
 
static constexpr hf_u16_t kCanDefaultQueueSize = 16
 
static constexpr size_t kNvsMaxKeyLength = 64
 Flash/NVS limits.
 
static constexpr size_t kNvsMaxValueSize = 4096
 
static constexpr size_t kNvsDefaultSectorSize = 4096
 
static constexpr float kTempSensorMinC = -40.0f
 Temperature sensor.
 
static constexpr float kTempSensorMaxC = 125.0f
 
static constexpr float kTempSensorTypAccuracyC = 1.5f
 
static constexpr hf_u32_t kLoggerMaxMessageLen = 256
 Logger.
 
static constexpr hf_u32_t kLoggerDefaultBufferSize = 1024
 

Enumeration Type Documentation

◆ GpioPort

enum class hf::stm32::GpioPort : hf_u8_t
strong

GPIO port index (A=0, B=1, ... K=10)

Enumerator

◆ HalStatus

enum class hf::stm32::HalStatus : hf_u8_t
strong

STM32 HAL status codes (mirrors HAL_StatusTypeDef without HAL include)

Enumerator
OK 
ERROR 
BUSY 
TIMEOUT 

Function Documentation

◆ DecodePinIndex()

constexpr hf_u8_t hf::stm32::DecodePinIndex ( hf_pin_num_t pin)
constexprnoexcept

Decode hf_pin_num_t → pin within port (0-15)

◆ DecodePinMask()

constexpr hf_u16_t hf::stm32::DecodePinMask ( hf_pin_num_t pin)
constexprnoexcept

Decode hf_pin_num_t → STM32 HAL pin mask (GPIO_PIN_0 .. GPIO_PIN_15)

◆ DecodePinPort()

constexpr hf_u8_t hf::stm32::DecodePinPort ( hf_pin_num_t pin)
constexprnoexcept

Decode hf_pin_num_t → port index.

◆ EncodePin()

constexpr hf_pin_num_t hf::stm32::EncodePin ( GpioPort port,
hf_u8_t pin )
constexprnoexcept

Encode (port, pin) → hf_pin_num_t.

◆ IsHalOk()

constexpr bool hf::stm32::IsHalOk ( hf_u32_t raw_status)
constexprnoexcept

Check if a raw HAL status indicates success.

◆ ToHalStatus()

constexpr HalStatus hf::stm32::ToHalStatus ( hf_u32_t raw_status)
constexprnoexcept

Convert raw HAL_StatusTypeDef to our enum.

Variable Documentation

◆ kAdcDefaultResolutionBits

constexpr hf_u8_t hf::stm32::kAdcDefaultResolutionBits = 12
staticconstexpr

◆ kAdcDefaultVrefV

constexpr float hf::stm32::kAdcDefaultVrefV = 3.3f
staticconstexpr

ADC reference voltage (V) — most STM32 boards.

◆ kAdcMaxChannels

constexpr hf_u8_t hf::stm32::kAdcMaxChannels = 20
staticconstexpr

ADC maximum channels (typical STM32F4/H7)

◆ kAdcMaxResolutionBits

constexpr hf_u8_t hf::stm32::kAdcMaxResolutionBits = 16
staticconstexpr

ADC maximum resolution (bits)

◆ kCanDefaultQueueSize

constexpr hf_u16_t hf::stm32::kCanDefaultQueueSize = 16
staticconstexpr

◆ kCanFdMaxBaudRate

constexpr hf_u32_t hf::stm32::kCanFdMaxBaudRate = 8000000
staticconstexpr

◆ kCanMaxBaudRate

constexpr hf_u32_t hf::stm32::kCanMaxBaudRate = 1000000
staticconstexpr

CAN limits.

◆ kI2cFastFreqHz

constexpr hf_u32_t hf::stm32::kI2cFastFreqHz = 400000
staticconstexpr

◆ kI2cFastPlusFreqHz

constexpr hf_u32_t hf::stm32::kI2cFastPlusFreqHz = 1000000
staticconstexpr

◆ kI2cMaxFreqHz

constexpr hf_u32_t hf::stm32::kI2cMaxFreqHz = 1000000
staticconstexpr

I2C limits.

◆ kI2cMaxTransferBytes

constexpr hf_u16_t hf::stm32::kI2cMaxTransferBytes = 65535
staticconstexpr

◆ kI2cStandardFreqHz

constexpr hf_u32_t hf::stm32::kI2cStandardFreqHz = 100000
staticconstexpr

◆ kLoggerDefaultBufferSize

constexpr hf_u32_t hf::stm32::kLoggerDefaultBufferSize = 1024
staticconstexpr

◆ kLoggerMaxMessageLen

constexpr hf_u32_t hf::stm32::kLoggerMaxMessageLen = 256
staticconstexpr

Logger.

◆ kMaxGpioPins

constexpr hf_u16_t hf::stm32::kMaxGpioPins = kMaxGpioPorts * kPinsPerPort
staticconstexpr

Maximum total GPIO pins (ports * pins_per_port)

◆ kMaxGpioPorts

constexpr hf_u8_t hf::stm32::kMaxGpioPorts = 11
staticconstexpr

Maximum GPIO ports (A..K = 11 on largest STM32H7)

◆ kNvsDefaultSectorSize

constexpr size_t hf::stm32::kNvsDefaultSectorSize = 4096
staticconstexpr

◆ kNvsMaxKeyLength

constexpr size_t hf::stm32::kNvsMaxKeyLength = 64
staticconstexpr

Flash/NVS limits.

◆ kNvsMaxValueSize

constexpr size_t hf::stm32::kNvsMaxValueSize = 4096
staticconstexpr

◆ kPinsPerPort

constexpr hf_u8_t hf::stm32::kPinsPerPort = 16
staticconstexpr

Maximum pins per GPIO port.

◆ kPwmMaxChannelsPerTimer

constexpr hf_u8_t hf::stm32::kPwmMaxChannelsPerTimer = 4
staticconstexpr

◆ kPwmMaxFreqHz

constexpr hf_u32_t hf::stm32::kPwmMaxFreqHz = 1000000
staticconstexpr

PWM limits.

◆ kPwmMaxResolution

constexpr hf_u16_t hf::stm32::kPwmMaxResolution = 65535
staticconstexpr

◆ kPwmMinFreqHz

constexpr hf_u32_t hf::stm32::kPwmMinFreqHz = 1
staticconstexpr

◆ kSpiDefaultFreqHz

constexpr hf_u32_t hf::stm32::kSpiDefaultFreqHz = 1000000
staticconstexpr

◆ kSpiMaxFreqHz

constexpr hf_u32_t hf::stm32::kSpiMaxFreqHz = 50000000
staticconstexpr

SPI limits.

◆ kSpiMaxTransferBytes

constexpr hf_u16_t hf::stm32::kSpiMaxTransferBytes = 65535
staticconstexpr

◆ kTempSensorMaxC

constexpr float hf::stm32::kTempSensorMaxC = 125.0f
staticconstexpr

◆ kTempSensorMinC

constexpr float hf::stm32::kTempSensorMinC = -40.0f
staticconstexpr

Temperature sensor.

◆ kTempSensorTypAccuracyC

constexpr float hf::stm32::kTempSensorTypAccuracyC = 1.5f
staticconstexpr

◆ kTimerMaxPeriodUs

constexpr hf_u64_t hf::stm32::kTimerMaxPeriodUs = 4294967295ULL
staticconstexpr

◆ kTimerMinPeriodUs

constexpr hf_u64_t hf::stm32::kTimerMinPeriodUs = 1
staticconstexpr

Timer limits (in microseconds)

◆ kTimerResolutionUs

constexpr hf_u64_t hf::stm32::kTimerResolutionUs = 1
staticconstexpr

◆ kUartDefaultBaudRate

constexpr hf_u32_t hf::stm32::kUartDefaultBaudRate = 115200
staticconstexpr

◆ kUartDefaultBufferSize

constexpr hf_u16_t hf::stm32::kUartDefaultBufferSize = 256
staticconstexpr

◆ kUartMaxBaudRate

constexpr hf_u32_t hf::stm32::kUartMaxBaudRate = 10000000
staticconstexpr

UART limits.