unleashed-firmware/bootloader/targets/f6/furi-hal/furi-hal-i2c.h

44 lines
879 B
C
Raw Normal View History

#pragma once
#include <stdbool.h>
#include <stdint.h>
2021-08-08 18:03:25 +00:00
#include <furi-hal-resources.h>
#ifdef __cplusplus
extern "C" {
#endif
2021-08-08 18:03:25 +00:00
void furi_hal_i2c_init();
2021-08-08 18:03:25 +00:00
bool furi_hal_i2c_tx(
I2C_TypeDef* instance,
const uint8_t address,
const uint8_t* data,
const uint8_t size,
uint32_t timeout);
2021-08-08 18:03:25 +00:00
bool furi_hal_i2c_rx(
I2C_TypeDef* instance,
const uint8_t address,
uint8_t* data,
const uint8_t size,
uint32_t timeout);
2021-08-08 18:03:25 +00:00
bool furi_hal_i2c_trx(
I2C_TypeDef* instance,
const uint8_t address,
const uint8_t* tx_data,
const uint8_t tx_size,
uint8_t* rx_data,
const uint8_t rx_size,
uint32_t timeout);
2021-08-08 18:03:25 +00:00
#define with_furi_hal_i2c(type, pointer, function_body) \
{ \
*pointer = ({ type __fn__ function_body __fn__; })(); \
}
#ifdef __cplusplus
}
#endif