|
2 | 2 | #include "test_env.h"
|
3 | 3 | #include <stdio.h>
|
4 | 4 |
|
| 5 | +#if !DEVICE_I2C |
| 6 | + #error [NOT_SUPPORTED] I2C is not supported |
| 7 | +#endif |
| 8 | + |
| 9 | +#if !DEVICE_I2CSLAVE |
| 10 | + #error [NOT_SUPPORTED] I2C Slave is not supported |
| 11 | +#endif |
| 12 | + |
| 13 | +#if defined(TARGET_NUCLEO_F031K6) || \ |
| 14 | + defined (TARGET_NUCLEO_L011K4) || \ |
| 15 | + defined (TARGET_NUCLEO_L031K6) || \ |
| 16 | + defined (TARGET_DISCO_F746NG) || \ |
| 17 | + defined (TARGET_DISCO_L476VG) || \ |
| 18 | + defined (TARGET_NUCLEO_F303K8) || \ |
| 19 | + defined (TARGET_NUCLEO_F334R8) || \ |
| 20 | + defined (TARGET_DISCO_F334C8) || \ |
| 21 | + defined (TARGET_NUCLEO_F042K6) |
| 22 | + #error [NOT_SUPPORTED] Target has only one I2C instance |
| 23 | +#endif |
| 24 | + |
5 | 25 | #define ADDR (0xA0)
|
6 | 26 | #define FREQ 100000
|
7 | 27 |
|
8 | 28 | // ********************************************************
|
9 | 29 | // This tests data transfer between two I2C interfaces on
|
10 | 30 | // the same chip, one configured as master, the other as
|
11 |
| -// slave. Works on: |
12 |
| -// |
13 |
| -// *LPC1768 mbed |
14 |
| -// p28 <-> p9 |
15 |
| -// p27 <-> p10 |
16 |
| -// pull-up resistors on both lines |
17 |
| -// *STM32F4 boards |
18 |
| -// cf below for wiring |
| 31 | +// slave. |
19 | 32 | //
|
| 33 | +// Wiring: connect master SCL to slave SCL, and master SDA to slave SDA |
20 | 34 | // ********************************************************
|
21 | 35 |
|
22 |
| -#if defined(TARGET_NUCLEO_F411RE) || defined (TARGET_NUCLEO_F446RE) || defined (TARGET_NUCLEO_F410RB) || defined (TARGET_NUCLEO_F401RE) |
23 |
| -I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15) |
24 |
| -I2CSlave slave(PB_3, PB_10); // I2C_2 (Arduino: D3/D6) |
25 |
| -#elif defined (TARGET_NUCLEO_F429ZI) || defined (TARGET_DISCO_F429ZI) || defined (TARGET_NUCLEO_F446ZE) |
26 |
| -I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15) |
27 |
| -I2CSlave slave(PB_11, PB_10); // I2C_2 |
| 36 | +#if defined (TARGET_DISCO_F429ZI) || \ |
| 37 | + defined (TARGET_DISCO_L053C8) |
| 38 | +I2C master(PB_9, PB_8); |
| 39 | + |
| 40 | +#elif defined(TARGET_FF_ARDUINO) |
| 41 | +I2C master(D14, D15); // I2C_SDA, I2C_SCL |
| 42 | +#endif |
| 43 | + |
| 44 | + |
| 45 | +#if defined (TARGET_NUCLEO_F429ZI) || \ |
| 46 | + defined (TARGET_NUCLEO_F767ZI) || \ |
| 47 | + defined (TARGET_NUCLEO_L053R8) || \ |
| 48 | + defined (TARGET_NUCLEO_L073RZ) || \ |
| 49 | + defined (TARGET_NUCLEO_L152RE) || \ |
| 50 | + defined (TARGET_NUCLEO_L476RG) || \ |
| 51 | + defined (TARGET_NUCLEO_F207ZG) || \ |
| 52 | + defined (TARGET_NUCLEO_F103RB) || \ |
| 53 | + defined (TARGET_NUCLEO_F091RC) || \ |
| 54 | + defined (TARGET_DISCO_F429ZI) || \ |
| 55 | + defined (TARGET_DISCO_F469NI) || \ |
| 56 | + defined (TARGET_DISCO_L053C8) || \ |
| 57 | + defined (TARGET_NUCLEO_F446ZE) |
| 58 | +I2CSlave slave(PB_11, PB_10); |
| 59 | + |
| 60 | +#elif defined (TARGET_NUCLEO_F303RE) || \ |
| 61 | + defined (TARGET_NUCLEO_F302R8) |
| 62 | +I2CSlave slave(D2, D8); |
| 63 | + |
| 64 | +#elif defined (TARGET_NUCLEO_F303ZE) |
| 65 | +I2CSlave slave(PC_9, PA_8); |
| 66 | + |
| 67 | +#elif defined (TARGET_NUCLEO_F746ZG) |
| 68 | +I2CSlave slave(D2, D4); |
| 69 | + |
| 70 | +#elif defined (TARGET_NUCLEO_F030R8) || \ |
| 71 | + defined (TARGET_NUCLEO_F070RB) || \ |
| 72 | + defined (TARGET_NUCLEO_F072RB) |
| 73 | +I2CSlave slave(PB_11, D6); |
| 74 | + |
| 75 | +#else |
| 76 | +I2CSlave slave(D3, D6); |
| 77 | + |
28 | 78 | #endif
|
29 | 79 |
|
30 | 80 | int main()
|
|
0 commit comments