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)
 | 
					            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")]
 | 
					#[cfg(feature = "unstable-traits")]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user