/*---------------------------------------------------------------------------------------------------------*/ void LIN_MasterTest(uint32_t u32id,uint32_t u32ModeSel) { uint32_t testPattern[8] ={0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8}; /*Send ID=0x35 Header and Reponse TestPatten*/ LIN_SendHeader(u32id); LIN_SendResponse(u32ModeSel,&testPattern[0]); }
/*---------------------------------------------------------------------------------------------------------*/ void LIN_FunctionTest() { uint32_t u32Item; /* LIN Max Speed is 20K */ UART1->BAUD = UART_BAUD_MODE2 | UART_BAUD_MODE2_DIVIDER(__HXT, 9600); /* === CASE 1==== The sample code will send a LIN header with a 12-bit break field, 0x55 sync field and ID field is 0x30. Measurement the UART1 Tx pin to check it. */ /* === CASE 2==== The sample code will send a LIN header with ID is 0x35 and response field. The response field with 8 data bytes and checksum without including ID. Measurement the UART1 Tx pin to check it. */ /* === CASE 3==== The sample code will send a LIN header with ID is 0x12 and response field. The response field with 8 data bytes and checksum with including ID. Measurement the UART1 Tx pin to check it. */ do { LIN_TestItem(); u32Item = getchar(); printf("%c\n", u32Item); switch(u32Item) { case '1': LIN_SendHeader(0x30); break; case '2': LIN_MasterTest(0x35, MODE_CLASSIC); break; case '3': LIN_MasterTest(0x12, MODE_ENHANCED); break; default: break; } } while(u32Item != 27); /* Select UART function mode */ UART1->FUN_SEL = UART_FUNC_SEL_UART; printf("\nLIN Sample Code End.\n"); }
/*---------------------------------------------------------------------------------------------------------*/ void LIN_FunctionTest() { uint32_t u32Item; /* Set UART Configuration, LIN Max Speed is 20K */ UART_SetLine_Config(UART1, 9600, UART_WORD_LEN_8, UART_PARITY_NONE, UART_STOP_BIT_1); /* === CASE 1==== The sample code will send a LIN header with a 12-bit break field, 0x55 sync field and ID field is 0x30. Measurement the UART1 Tx pin to check it. */ /* === CASE 2==== The sample code will send a LIN header with ID is 0x35 and response field. The response field with 8 data bytes and checksum without including ID. Measurement the UART1 Tx pin to check it. */ /* === CASE 3==== The sample code will send a LIN header with ID is 0x12 and response field. The response field with 8 data bytes and checksum with including ID. Measurement the UART1 Tx pin to check it. */ do { LIN_TestItem(); u32Item = getchar(); printf("%c\n", u32Item); switch(u32Item) { case '1': LIN_SendHeader(0x30); break; case '2': LIN_MasterTest(0x35, MODE_CLASSIC); break; case '3': LIN_MasterTest(0x12, MODE_ENHANCED); break; default: break; } } while(u32Item != 27); UART_Close(UART1); printf("\nLIN Sample Code End.\n"); }