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