Init
This commit is contained in:
parent
b43a3ec283
commit
b4e3fed40a
|
|
@ -19,8 +19,8 @@ void vSerialPortLinInit(
|
|||
) {
|
||||
env->uart = uart;
|
||||
|
||||
env->linLastByteTime = 2;
|
||||
env->linFrameTimeoutMs = 2;
|
||||
env->linLastByteTime = 15;
|
||||
env->linFrameTimeoutMs = 15;
|
||||
|
||||
usart_reset(uart);
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ void vSerialPortLinInit(
|
|||
// Включаем прерывание по break frame
|
||||
usart_interrupt_enable(uart, USART_BF_INT, TRUE);
|
||||
usart_interrupt_enable(uart, USART_RDBF_INT, TRUE);
|
||||
usart_interrupt_enable(uart, USART_IDLE_INT, TRUE);
|
||||
// usart_interrupt_enable(uart, USART_IDLE_INT, TRUE);
|
||||
|
||||
NVIC_EnableIRQ(irq);
|
||||
NVIC_SetPriority(irq, irqPriority);
|
||||
|
|
@ -150,6 +150,7 @@ static void LIN_ProcessReceivedFrame(tSerialPortLinArtery *env, bool isHeader) {
|
|||
env->rxFrame.dataLen = 0;
|
||||
env->rxFrame.event = LIN_RX_COMPLETED;
|
||||
osMessageQueuePut(env->rxDataQueue, &env->rxFrame, 0, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -213,7 +214,7 @@ void SerialPort_IrqProcessing_UartLin(tSerialPortLinArtery *env) {
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
if (usart_flag_get(env->uart, USART_IDLEF_FLAG)) {
|
||||
usart_flag_clear(env->uart, USART_IDLEF_FLAG);
|
||||
|
||||
|
|
@ -247,7 +248,7 @@ void SerialPort_IrqProcessing_UartLin(tSerialPortLinArtery *env) {
|
|||
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
// 2. Receive data (без IDLE)
|
||||
|
|
@ -297,8 +298,6 @@ void SerialPort_IrqProcessing_UartLin(tSerialPortLinArtery *env) {
|
|||
// Функция проверки таймаута (вызывать из таймера, например, каждые 1-5 мс)
|
||||
void LIN_CheckTimeout(tSerialPortLinArtery *env) {
|
||||
|
||||
return;
|
||||
|
||||
if (!env->linFrameStarted) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -496,14 +495,13 @@ static uint8_t vLinTransmitCommand(tSerialPortLinArtery *env, tLinData *linData,
|
|||
static uint8_t vLinReceivedCommand(tSerialPortLinArtery *env, tLinData *linData, uint8_t *ADR_COM, uint32_t timeout) {
|
||||
lin_frame_t rxFrame;
|
||||
|
||||
// uint16_t len = vSerialPortLinReceiveQueue(env, (void *) &rxFrame, sizeof(lin_frame_t), osWaitForever, env->rxDataQueue);
|
||||
osStatus_t result = osMessageQueueGet(env->rxDataQueue, (void *) &rxFrame, NULL, osWaitForever);
|
||||
if (result == osOK) {
|
||||
|
||||
memset(linData->g_aRxBuffer, 0, sizeof(linData->g_aRxBuffer));
|
||||
|
||||
if (rxFrame.event == LIN_RX_COMPLETED) {
|
||||
linData->g_aRxBufferLen = rxFrame.dataLen + 1;
|
||||
linData->g_aRxBufferLen = rxFrame.dataLen;
|
||||
*ADR_COM = rxFrame.id & 0x3F;
|
||||
for (uint8_t i = 0; i < rxFrame.dataLen; ++i) {
|
||||
linData->g_aRxBuffer[i] = rxFrame.data[i];
|
||||
|
|
|
|||
Loading…
Reference in New Issue