|  | 
| enum | DetachCause : uint8_t { DetachCause::NormalStop, 
DetachCause::ErrorCondition, 
DetachCause::FailedToAttach
 } | 
|  | 
| enum | TransactionState : uint8_t { TransactionState::Idle, 
TransactionState::Busy, 
TransactionState::Error
 } | 
|  | State of a I2c Transaction.  More... 
 | 
|  | 
|  | 
| enum | Operation : uint8_t { Operation::Stop = 0, 
Operation::Restart = 1, 
Operation::Write = 2, 
Operation::Read = 3
 } | 
|  | All possible I2C Operations.  More... 
 | 
|  | 
| enum | OperationAfterStart : uint8_t { OperationAfterStart::Stop = uint8_t(Operation::Stop), 
OperationAfterStart::Write = uint8_t(Operation::Write), 
OperationAfterStart::Read = uint8_t(Operation::Read)
 } | 
|  | Further operations after start operation.  More... 
 | 
|  | 
| enum | OperationAfterWrite : uint8_t { OperationAfterWrite::Stop = uint8_t(Operation::Stop), 
OperationAfterWrite::Restart = uint8_t(Operation::Restart), 
OperationAfterWrite::Write = uint8_t(Operation::Write)
 } | 
|  | Further operations after write operation.  More... 
 | 
|  | 
| enum | OperationAfterRead : uint8_t { OperationAfterRead::Stop = uint8_t(Operation::Stop), 
OperationAfterRead::Restart = uint8_t(Operation::Restart)
 } | 
|  | Further operations after read operation.  More... 
 | 
|  | 
|  | 
| template<class Scl > | 
| static void | resetDevices (uint32_t baudrate=100'000) | 
|  | 
|  | 
| static constexpr uint8_t | Write = 0x00 | 
|  | Add the Write bit to the slave address. 
 | 
|  | 
| static constexpr uint8_t | Read = 0x01 | 
|  | Add the Read bit to the slave address. 
 | 
|  | 
This tells the I2cTransaction why it was detached 
- See also
- I2cTransaction 
| Enum Values | Documentation | 
|---|
| NormalStop | All operations finished normally.  | 
| ErrorCondition | A bus error occurred and the bus was reset.  | 
| FailedToAttach | The I2cTransaction failed to attach to the I2cMaster.  | 
 
 
All possible I2C Operations. 
I2C Operations that the I2cTransaction can give the master on callback 
- See also
- I2cTransaction 
| Enum Values | Documentation | 
|---|
| Stop | Generate a Stop Condition.  | 
| Restart | Generate a Restart.  | 
| Write | Write data to the slave.  | 
| Read | Read data from the slave.  | 
 
 
Further operations after read operation. 
| Enum Values | Documentation | 
|---|
| Stop | Generate a Stop Condition.  | 
| Restart | Generate a Restart.  | 
 
 
Further operations after start operation. 
| Enum Values | Documentation | 
|---|
| Stop | Generate a Stop Condition.  | 
| Write | Write data to the slave.  | 
| Read | Read data from the slave.  | 
 
 
Further operations after write operation. 
| Enum Values | Documentation | 
|---|
| Stop | Generate a Stop Condition.  | 
| Restart | Generate a Restart.  | 
| Write | Write data to the slave.  | 
 
 
State of a I2c Transaction. 
| Enum Values | Documentation | 
|---|
| Idle | No error occurred, detached normally.  | 
| Busy | The transaction object is busy with data transfer.  | 
| Error | An error occurred, check the masters getErrorCode() | 
 
 
template<class Scl > 
  
  | 
        
          | static void modm::I2c::resetDevices | ( | uint32_t | baudrate = 100'000 | ) |  |  | inlinestatic | 
 
Reset all slave devices connected to an I2C bus.
During normal operation, I2C slave device may pull the SDA line low. However, if the master is reset during a transaction, the I2C clock may stop while the slave is outputting a low data bit and the slave will continue to hold this bit (forever, and ever and ever). The I2C master is then unable to generate a I2C start condition, since SDA is still held low by the slave device, resulting in a deadlock.
"You can always get it back to standby mode by allowing the SDA line to
float high and give it 9 clocks.
This assures that the device will not receive the acknowledge bit at
the end the current byte and will abort the command and go to standby."
- See also
- Application Note AN572 by Microchip
- Warning
- Must be called before connecting SDA and SCL to I2cMaster!
- Template Parameters
- 
  
    | Scl | The clock pin of the bus to be reset. |  
 
 
 
The documentation for this struct was generated from the following file: