void Buffer_Puts(BUFFER *bf, const char *S) { Buffer_Print(bf,S); Buffer_Print(bf,"\n"); }
void Buffer_Puts_Utf8(BUFFER *bf, const wchar_t *S) { Buffer_Print_Utf8(bf,S); Buffer_Print(bf,"\n"); }
/*********************************************************************//** * @brief c_entry: Main program body * @param[in] None * @return int **********************************************************************/ int c_entry(void) { I2C_M_SETUP_Type transferMCfg; uint32_t tempp; uint8_t *pdat; /* Initialize debug via UART0 * – 115200bps * – 8 data bit * – No parity * – 1 stop bit * – No flow control */ debug_frmwrk_init(); print_menu(); /* I2C block ------------------------------------------------------------------- */ /* * Init I2C pin connect */ #if ((I2CDEV_M == 0)) PINSEL_ConfigPin (5, 2, 5); PINSEL_ConfigPin (5, 3, 5); #elif ((I2CDEV_M == 1)) PINSEL_ConfigPin (0, 19, 3); PINSEL_ConfigPin (0, 20, 3); PINSEL_SetOpenDrainMode(0, 19, ENABLE); PINSEL_SetOpenDrainMode(0, 20, ENABLE); PINSEL_SetPinMode(0, 19, PINSEL_BASICMODE_PLAINOUT); PINSEL_SetPinMode(0, 20, PINSEL_BASICMODE_PLAINOUT); #elif ((I2CDEV_M == 2)&& (_CURR_USING_OEM_BRD != LPC4088_OEM_BOARD)) PINSEL_ConfigPin (0, 10, 2); PINSEL_ConfigPin (0, 11, 2); PINSEL_SetOpenDrainMode(0, 10, ENABLE); PINSEL_SetOpenDrainMode(0, 11, ENABLE); PINSEL_SetPinMode(0, 10, PINSEL_BASICMODE_PLAINOUT); PINSEL_SetPinMode(0, 11, PINSEL_BASICMODE_PLAINOUT); #else #error "Please choose the correct peripheral." #endif // Initialize Slave I2C peripheral I2C_Init((en_I2C_unitId)I2CDEV_M, 100000); /* Enable Slave I2C operation */ I2C_Cmd((en_I2C_unitId)I2CDEV_M, I2C_MASTER_MODE, ENABLE); /* Transmit -------------------------------------------------------- */ _DBG_("Press '1' to transmit"); while (_DG != '1'); /* Initialize buffer */ Buffer_Init(1); _DBG_("Transmit Data: "); Buffer_Print((uint8_t*)Master_Buf, sizeof(Master_Buf)); /* Start I2C slave device first */ transferMCfg.sl_addr7bit = I2CDEV_S_ADDR; transferMCfg.tx_data = Master_Buf; transferMCfg.tx_length = sizeof(Master_Buf); transferMCfg.rx_data = NULL; transferMCfg.rx_length = 0; transferMCfg.retransmissions_max = 3; transferMCfg.tx_count = 0; transferMCfg.rx_count = 0; transferMCfg.retransmissions_count = 0; #if (I2CDEV_TRANSFER_POLLING == 0) complete = FALSE; I2C_MasterTransferData((en_I2C_unitId)I2CDEV_M, &transferMCfg, I2C_TRANSFER_INTERRUPT); while(!complete) ; #else I2C_MasterTransferData((en_I2C_unitId)I2CDEV_M, &transferMCfg, I2C_TRANSFER_POLLING); #endif /* Receive -------------------------------------------------------- */ _DBG_("Press '2' to receive"); while(_DG != '2'); /* Initialize buffer */ Buffer_Init(0); /* Start I2C slave device first */ transferMCfg.sl_addr7bit = I2CDEV_S_ADDR; transferMCfg.tx_data = NULL ; transferMCfg.tx_length = 0; transferMCfg.rx_data = Master_Buf; transferMCfg.rx_length = sizeof(Master_Buf); transferMCfg.retransmissions_max = 3; transferMCfg.tx_count = 0; transferMCfg.rx_count = 0; transferMCfg.retransmissions_count = 0; #if (I2CDEV_TRANSFER_POLLING == 0) complete = FALSE; I2C_MasterTransferData((en_I2C_unitId)I2CDEV_M, &transferMCfg, I2C_TRANSFER_INTERRUPT); while(!complete) ; #else I2C_MasterTransferData((en_I2C_unitId)I2CDEV_M, &transferMCfg, I2C_TRANSFER_POLLING); #endif pdat = (uint8_t*)Master_Buf; _DBG_("Receive Data: "); Buffer_Print((uint8_t*)Master_Buf, sizeof(Master_Buf)); // Verify for (tempp = 0; tempp < sizeof(Master_Buf); tempp++){ if (*pdat != (tempp)){ _DBG_("Verify error "); break; } pdat++; } if (tempp == sizeof(Master_Buf)){ _DBG_("Verify successfully"); } /* Transmit and receive -------------------------------------------------------- */ _DBG_("Press '3' to Transmit, then repeat start and receive..."); while (_DG != '3'); /* Initialize buffer */ Buffer_Init(0); master_test[0] = 0xAA; master_test[1] = 0x55; /* Start I2C slave device first */ transferMCfg.sl_addr7bit = I2CDEV_S_ADDR; transferMCfg.tx_data = master_test ; transferMCfg.tx_length = sizeof(master_test); transferMCfg.rx_data = Master_Buf; transferMCfg.rx_length = sizeof(Master_Buf); transferMCfg.tx_count = 0; transferMCfg.rx_count = 0; transferMCfg.retransmissions_count = 0; transferMCfg.retransmissions_max = 3; #if (I2CDEV_TRANSFER_POLLING == 0) complete = FALSE; I2C_MasterTransferData((en_I2C_unitId)I2CDEV_M, &transferMCfg, I2C_TRANSFER_INTERRUPT); while(!complete) ; #else I2C_MasterTransferData((en_I2C_unitId)I2CDEV_M, &transferMCfg, I2C_TRANSFER_POLLING); #endif pdat = (uint8_t*)Master_Buf; _DBG_("Transmit Data: "); Buffer_Print((uint8_t*)master_test, sizeof(master_test)); _DBG_("Receive Data: "); Buffer_Print((uint8_t*)Master_Buf, sizeof(Master_Buf)); // Verify for (tempp = 0; tempp < sizeof(Master_Buf); tempp++){ if (*pdat++ != tempp){ _DBG_("Verify error: "); break; } } if (tempp == sizeof(Master_Buf)){ _DBG_("Verify successfully"); } I2C_DeInit((en_I2C_unitId)I2CDEV_M); /* Loop forever */ while(1); }