@@ -220,34 +220,34 @@ impl<I2C: Instance> I2c<I2C> {
220220 let sr1 = self . i2c . sr1 ( ) . read ( ) ;
221221
222222 if sr1. timeout ( ) . bit_is_set ( ) {
223- self . i2c . sr1 ( ) . modify ( |_ , w| w. timeout ( ) . clear_bit ( ) ) ;
223+ self . i2c . sr1 ( ) . write ( | w| w. timeout ( ) . clear_bit ( ) ) ;
224224 return Err ( Error :: Timeout ) ;
225225 }
226226
227227 if sr1. pecerr ( ) . bit_is_set ( ) {
228- self . i2c . sr1 ( ) . modify ( |_ , w| w. pecerr ( ) . clear_bit ( ) ) ;
228+ self . i2c . sr1 ( ) . write ( | w| w. pecerr ( ) . clear_bit ( ) ) ;
229229 return Err ( Error :: Crc ) ;
230230 }
231231
232232 if sr1. ovr ( ) . bit_is_set ( ) {
233- self . i2c . sr1 ( ) . modify ( |_ , w| w. ovr ( ) . clear_bit ( ) ) ;
233+ self . i2c . sr1 ( ) . write ( | w| w. ovr ( ) . clear_bit ( ) ) ;
234234 return Err ( Error :: Overrun ) ;
235235 }
236236
237237 if sr1. af ( ) . bit_is_set ( ) {
238- self . i2c . sr1 ( ) . modify ( |_ , w| w. af ( ) . clear_bit ( ) ) ;
238+ self . i2c . sr1 ( ) . write ( | w| w. af ( ) . clear_bit ( ) ) ;
239239 return Err ( Error :: NoAcknowledge ( NoAcknowledgeSource :: Unknown ) ) ;
240240 }
241241
242242 if sr1. arlo ( ) . bit_is_set ( ) {
243- self . i2c . sr1 ( ) . modify ( |_ , w| w. arlo ( ) . clear_bit ( ) ) ;
243+ self . i2c . sr1 ( ) . write ( | w| w. arlo ( ) . clear_bit ( ) ) ;
244244 return Err ( Error :: ArbitrationLoss ) ;
245245 }
246246
247247 // The errata indicates that BERR may be incorrectly detected. It recommends ignoring and
248248 // clearing the BERR bit instead.
249249 if sr1. berr ( ) . bit_is_set ( ) {
250- self . i2c . sr1 ( ) . modify ( |_ , w| w. berr ( ) . clear_bit ( ) ) ;
250+ self . i2c . sr1 ( ) . write ( | w| w. berr ( ) . clear_bit ( ) ) ;
251251 }
252252
253253 Ok ( sr1)
0 commit comments