PinOut: I2Cn_SCL & I2Cn_SDA
template <class T>
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);
void init() noexcept;自局アドレスを反映させ、再初期化します
// 例 slave.init();
void init( const uint8_t address ) noexcept;自局アドレスを上書きし、再初期化します
// 例 slave.init(0x01);
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); // 変数ではなくリテラルも使用可能
HAL_StatusTypeDef receive( T &data, uint32_t timeout ) const noexcept;HAL_I2C_Slave_Receive() の結果を返します
// 例 uint8_t data; slave.receive(data, 0x0F);