# STM32-DS2482-HAL

A DS2482-100 HAL for the STM32F3/F4/H7 series

## Usage

Define the target chip, and set the compiler to C23+:

`gcc [...] --std=gnu2x -DSTM32[F3/F4/H7]`

or
```yaml
# (in STM32-for-VSCode.config.yaml)
# Compiler definitions. The -D prefix for the compiler will be automatically added.
cDefinitions:
  - STM32[F3/F4/H7]
  - USE_HAL_DRIVER

# ...

# Compiler flags
cFlags: 
  - --std=gnu2x
```

Then, configure the HAL:

```c
// (in DS2482_HAL.h)
#define MULTIPLE_DEVICES false   //set to true if multiple DS2482 devices are connected

#if !MULTIPLE_DEVICES
    #define DS2482_I2C_ADDR 0x00 //set to I2C address of the DS2482 device (if in single device mode)
#endif
#define DS2482_TIMEOUT_1W 100    //timeout in ms for 1-wire operations
#define DS2482_TIMEOUT_I2C 100   //timeout in ms for I2C operations
```

For multiple DS2482 devices on one chip:
  - Set `MULTIPLE_DEVICES` to `true`
  - Call `ds2482_create()` with the I2C handle and address
  - Call `ds2482_init()` with the handle
  - The HAL is ready

For just one DS2482:
 - Set `DS2482_I2C_ADDR` to the I2C address
 - Call `ds2482_init()` with the I2C handle
 - The HAL is ready

Be sure to check the return values for error handling.