84 #define I2CDEV_UDA1380_ADDR (0x34 >> 1)
85 #define I2CDEV_STMPE811_ADDR (0x82 >> 1)
88 #define I2CDEV_S_ADDR (0x90 >> 1)
91 #define BUFFER_SIZE 0xFF
93 #define C_GLCD_H_SIZE 240
94 #define C_GLCD_V_SIZE 320
97 "\n\rHello NXP Semiconductors \n\r"
99 "\n\rPress 1-5 to select I2C running mode or 'ESC' to terminate the demo:\n\r\n\r"
100 "\t 1 - I2C Polling Master\n\r"
101 "\t 2 - I2C Interrupt Master\n\r"
102 "\t 3 - I2C Polling Slave \n\r"
103 "\t 4 - I2C Interrupt Slave \n\r"
104 "\t 5 - I2C TouchScreen \n\r"
105 "\n\rNote: Master mode can only run combine with Slave mode and vice versa.";
106 static char menu1[] =
"\n\r \t - Press x to exit this mode!\n\r";
107 static char menu2[] =
"\n\rI2C demo terminated!";
108 static char menu3[] =
"\t - Press c to continue...\n\r";
146 uint8_t buffer = 0xFF, regAddr = 0xBA;
155 DEBUGOUT(
"\n\r\n\rI2C Polling Master is running...\n\r");
161 if ((buffer ==
'x') || (buffer ==
'X')) {
166 else if ((buffer ==
'c') || (buffer ==
'C')) {
171 DEBUGOUT(
"\n\rPress '1' to transmit");
184 transferMCfg.
tx_data = Master_Buf;
185 transferMCfg.
tx_length =
sizeof(Master_Buf);
189 DEBUGOUT(
"\n\rPress '2' to receive");
202 transferMCfg.
rx_data = Master_Buf;
203 transferMCfg.
rx_length =
sizeof(Master_Buf);
208 for (i = 0; i <
sizeof(Master_Buf); i++)
213 if (i ==
sizeof(Master_Buf)) {
214 DEBUGOUT(
"\n\rVerify successfully!");
218 DEBUGOUT(
"\n\rPress '3' to Transmit, then repeat start and receive...");
230 transferMCfg.
tx_data = ®Addr;
232 transferMCfg.
rx_data = Master_Buf;
233 transferMCfg.
rx_length =
sizeof(Master_Buf);
238 for (i = 0; i <
sizeof(Master_Buf); i++)
243 if (i ==
sizeof(Master_Buf)) {
244 DEBUGOUT(
"\n\rVerify successfully!");
253 uint8_t buffer = 0xFF, regAddr = 0xBA;
262 DEBUGOUT(
"\n\r\n\rI2C Interrupt Master is running...\n\r");
268 if ((buffer ==
'x') || (buffer ==
'X')) {
273 else if ((buffer ==
'c') || (buffer ==
'C')) {
278 DEBUGOUT(
"\n\rPress '1' to transmit");
292 transferMCfg.
tx_data = Master_Buf;
293 transferMCfg.
tx_length =
sizeof(Master_Buf);
295 NVIC_EnableIRQ(I2C1_IRQn);
299 DEBUGOUT(
"\n\rPress '2' to receive");
313 transferMCfg.
rx_data = Master_Buf;
314 transferMCfg.
rx_length =
sizeof(Master_Buf);
316 NVIC_EnableIRQ(I2C1_IRQn);
321 for (i = 0; i <
sizeof(Master_Buf); i++)
326 if (i ==
sizeof(Master_Buf)) {
327 DEBUGOUT(
"\n\rVerify successfully!");
331 DEBUGOUT(
"\n\rPress '3' to Transmit, then repeat start and receive...");
344 transferMCfg.
tx_data = ®Addr;
346 transferMCfg.
rx_data = Master_Buf;
347 transferMCfg.
rx_length =
sizeof(Master_Buf);
349 NVIC_EnableIRQ(I2C1_IRQn);
354 for (i = 0; i <
sizeof(Master_Buf); i++)
359 if (i ==
sizeof(Master_Buf)) {
360 DEBUGOUT(
"\n\rVerify successfully!");
369 uint8_t buffer = 0xFF, regAddr = 0xBA;
378 DEBUGOUT(
"\n\r\n\rI2C Polling Slave is running...\n\r");
383 if ((buffer ==
'x') || (buffer ==
'X')) {
388 else if ((buffer ==
'c') || (buffer ==
'C')) {
406 transferSCfg.
rx_data = Slave_Buf;
407 transferSCfg.
rx_length =
sizeof(Slave_Buf);
412 for (i = 0; i <
sizeof(Slave_Buf); i++)
417 if (i ==
sizeof(Slave_Buf)) {
418 DEBUGOUT(
"\n\rVerify successfully!");
427 transferSCfg.
tx_data = Slave_Buf;
428 transferSCfg.
tx_length =
sizeof(Slave_Buf);
432 DEBUGOUT(
"\n\rStart Receive, wait for repeat start and transmit...");
437 transferSCfg.
rx_data = &S_buff;
440 if (S_buff == regAddr) {
441 transferSCfg.
tx_data = Slave_Buf;
442 transferSCfg.
tx_length =
sizeof(Slave_Buf);
452 uint8_t buffer = 0xFF, regAddr = 0xBA;
461 DEBUGOUT(
"\n\r\n\rI2C Interrupt Slave is running...\n\r");
466 if ((buffer ==
'x') || (buffer ==
'X')) {
471 else if ((buffer ==
'c') || (buffer ==
'C')) {
490 transferSCfg.
rx_data = Slave_Buf;
491 transferSCfg.
rx_length =
sizeof(Slave_Buf);
493 NVIC_EnableIRQ(I2C1_IRQn);
498 for (i = 0; i <
sizeof(Slave_Buf); i++)
503 if (i ==
sizeof(Slave_Buf)) {
504 DEBUGOUT(
"\n\rVerify successfully!");
514 transferSCfg.
tx_data = Slave_Buf;
515 transferSCfg.
tx_length =
sizeof(Slave_Buf);
517 NVIC_EnableIRQ(I2C1_IRQn);
521 DEBUGOUT(
"\n\rStart Receive, wait for repeat start and transmit...");
527 transferSCfg.
rx_data = &S_buff;
530 NVIC_EnableIRQ(I2C1_IRQn);
533 if (S_buff == regAddr) {
535 transferSCfg.
tx_data = Slave_Buf;
536 transferSCfg.
tx_length =
sizeof(Slave_Buf);
538 NVIC_EnableIRQ(I2C1_IRQn);
547 #if defined(BOARD_KEIL_MCB_18574357)
556 while (exitflag ==
RESET) {
559 if ((buffer ==
'x') || (buffer ==
'X')) {
588 NVIC_DisableIRQ(I2C1_IRQn);
595 NVIC_DisableIRQ(I2C1_IRQn);
608 uint8_t buffer = 0xFF;
630 while (exitflag ==
RESET) {