// // Created by Cfif on 14.12.23. // #include #include "fc7xxx_driver_port.h" #include "fc7xxx_driver_gpio.h" #include "Lins.h" tLins LINS; void LinCallbackHandler(uint8_t u8LinIndex, void *state) { GetLinCallbackHandler(&LINS.lin, u8LinIndex, state); } void FCUART4_RxTx_IRQHandler(void) { LIN_DrvIRQHandler(LINS.lin.UART_INDEX); } void Lins_Init() { tLins *env = &LINS; PORT_InitType tInitStruct = {0}; GPIO_InitType tGpioInitStruct = {0}; /* Port D12: MUX = ALT3, UART4_RX */ tInitStruct.u32PortPins = PORT_PIN_12; tInitStruct.uPortPinMux.u32PortPinMode = PORTD_12_FCUART4_RX; tInitStruct.bPullEn = true; tInitStruct.ePullSel = PORT_PULL_UP; PORT_InitPins(PORT_D, &tInitStruct); tGpioInitStruct.u32GpioPins = GPIO_PIN_12; tGpioInitStruct.ePinDirection = GPIO_IN; GPIO_InitPins(GPIO_D, &tGpioInitStruct); /* Port D5: MUX = ALT3, UART4_TX */ tInitStruct.u32PortPins = PORT_PIN_5; tInitStruct.uPortPinMux.u32PortPinMode = PORTD_5_FCUART4_TX; PORT_InitPins(PORT_D, &tInitStruct); tGpioInitStruct.u32GpioPins = GPIO_PIN_5; tGpioInitStruct.ePinDirection = GPIO_OUT; tGpioInitStruct.ePinLevel = GPIO_HIGH; GPIO_InitPins(GPIO_D, &tGpioInitStruct); /* Port D18: MUX = GPIO output */ //tInitStruct.u32PortPins = PORT_PIN_18; //tInitStruct.uPortPinMux.u32PortPinMode = PORT_GPIO_MODE; //PORT_InitPins(PORT_D, &tInitStruct); //tGpioInitStruct.u32GpioPins = GPIO_PIN_18; //tGpioInitStruct.ePinDirection = GPIO_OUT; //tGpioInitStruct.ePinLevel = GPIO_HIGH; //GPIO_InitPins(GPIO_D, &tGpioInitStruct); LIN_Initial( &env->lin, FCUART4, 19200, 4, // UART0 = 0 ... UART7 = 7 FCUART4_IRQn, // FCUART0_IRQn ... FCUART7_IRQn 0xFF, NULL, LinCallbackHandler ); env->linIo = vLinGetIo(&env->lin); }