Skip to content

Commit d67b431

Browse files
committed
I2C test: let slave time to get notified
depending on timing and HW, there might be some delay before the master request gets notified, so better loop in while than a single call to slave.receive()
1 parent 7066734 commit d67b431

File tree

1 file changed

+4
-10
lines changed
  • features/unsupported/tests/mbed/i2c_master_slave

1 file changed

+4
-10
lines changed

features/unsupported/tests/mbed/i2c_master_slave/main.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,8 @@ int main()
8989
master.start();
9090
master.write(ADDR);
9191
master.write(sent);
92-
if(slave.receive() != I2CSlave::WriteAddressed)
93-
{
94-
notify_completion(false);
95-
return 1;
96-
}
92+
while(slave.receive() != I2CSlave::WriteAddressed);
93+
9794
slave.read(&received, 1);
9895
if(sent != received)
9996
{
@@ -105,11 +102,8 @@ int main()
105102
// Second transfer: slave to master
106103
master.start();
107104
master.write(ADDR | 1);
108-
if(slave.receive() != I2CSlave::ReadAddressed)
109-
{
110-
notify_completion(false);
111-
return 1;
112-
}
105+
while(slave.receive() != I2CSlave::ReadAddressed);
106+
113107
slave.write(received);
114108
received = master.read(0);
115109
slave.stop();

0 commit comments

Comments
 (0)