Add Transactional trait to rp's i2c impl
				
					
				
			This commit is contained in:
		
							parent
							
								
									3e730aa8b0
								
							
						
					
					
						commit
						2119b8e1ca
					
				@ -617,6 +617,22 @@ mod eh02 {
 | 
			
		||||
            self.blocking_write_read(address, bytes, buffer)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    impl<'d, T: Instance, M: Mode> embedded_hal_02::blocking::i2c::Transactional for I2c<'d, T, M> {
 | 
			
		||||
        type Error = Error;
 | 
			
		||||
        
 | 
			
		||||
        fn exec(&mut self, address: u8, operations: &mut [embedded_hal_02::blocking::i2c::Operation<'_>]) -> Result<(), Self::Error> {
 | 
			
		||||
            Self::setup(address.into())?;
 | 
			
		||||
            for i in 0..operations.len() {
 | 
			
		||||
                let last = i == operations.len() - 1;
 | 
			
		||||
                match &mut operations[i] {
 | 
			
		||||
                    embedded_hal_02::blocking::i2c::Operation::Read(buf) => self.read_blocking_internal(buf, false, last)?,
 | 
			
		||||
                    embedded_hal_02::blocking::i2c::Operation::Write(buf) => self.write_blocking_internal(buf, last)?,
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            Ok(())
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(feature = "unstable-traits")]
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user