Skip to content

Latest commit

 

History

History
104 lines (95 loc) · 2.14 KB

I2C_Slave.md

File metadata and controls

104 lines (95 loc) · 2.14 KB

I2C_Slave

目次

CubeMX

PinOut: I2Cn_SCL & I2Cn_SDA

クラステンプレート

template <class T>
T: 送受信するデータ型

コンストラクタ

I2C_Slave::I2C_Slave(I2C_HandleTypeDef uint8_t)
I2C_Slave(
    I2C_HandleTypeDef *hi2c,
    uint8_t address = 0x00
);
I2C_Slave(
    I2C_HandleTypeDef &hi2c,
    uint8_t address = 0x00
);

ピンと自局アドレスを設定します
自局アドレスを省略することも可能です

//
I2C_Slave<uint8_t> slave(hi2c1, 0x01);
I2C_Slave<uint8_t> slave(hi2c1);

I2C_Slave<uint8_t> slave(&hi2c1, 0x01);
I2C_Slave<uint8_t> slave(&hi2c1);

関数

I2C_Slave::init()
void init() noexcept;

自局アドレスを反映させ、再初期化します

//
slave.init();
I2C_Slave::init(uint8_t)
void init(
    const uint8_t address
) noexcept;

自局アドレスを上書きし、再初期化します

//
slave.init(0x01);
I2C_Slave::transmit(T, uint32_t)
HAL_StatusTypeDef transmit(
    const T &data,
    uint32_t timeout
) const noexcept;

HAL_I2C_Slave_Transmit() の結果を返します

//
uint8_t data = 0xAC;
slave.transmit(data, 0x0F);
slave.transmit(0x35, 0x0F); // 変数ではなくリテラルも使用可能
I2C_Slave::receive(T, uint32_t)
HAL_StatusTypeDef receive(
    T &data,
    uint32_t timeout
) const noexcept;

HAL_I2C_Slave_Receive() の結果を返します

//
uint8_t data;
slave.receive(data, 0x0F);

<< 戻る