Slave receiverหลังจาก the address reception และหลังจากเคลียร์ ADDR, the slave รับ bytes จาก the SDA line ลงใน the DR register โดยทาง the internal shift register. หลังจากแต่ละ byte, the interface สร้างในลำดับ:
• An acknowledge pulse ถ้า the ACK bit ถูก set
• The RxNE bit ถูก set โดย hardware และ an interrupt ถูกสร้างขึ้นถ้า the ITEVFEN และ ITBUFEN bit ถูก set.
ถ้า RxNE ถูก set และ data ใน the I2C_DR register ไม่ได้ถูกอ่านก่อน the end ของ the next data reception,, the BTF bit ถูก set และ the interface คอยจนกระทั่ง BTF ถูกเคลียร์โดยการอ่านจาก I2C_SR1 ตามด้วยการอ่านจาก the I2C_DR register, ขึง SCL low.

1. The EV1 event ขึง SCL low จนกระทั่ง the end of the corresponding software sequence.
2. The EV2 software sequence ต้องทำให้เสร็จสมบูรณ์ก่อน the end of the current byte transfer
3. หลังจากเช็ค the SR1 register content, the user ควรดำเนินการ the complete clearing sequence สำหรับแต่ละ flag ที่พบ
ว่า set.
ดังนั้น, สำหรับ ADDR and STOPF flags, ลำดับต่อไปนี้ถูกต้องการภายใน the I2C interrupt routine:
READ SR1
if (ADDR == 1) {READ SR1; READ SR2}
if (STOPF == 1) {READ SR1; WRITE CR1}
จุดประสงค์คือทำให้แน่ใจว่าทั้ง ADDR and STOPF flags ถูกเคลียร์ถ้าทั้งสองถูกพบว่า set.