Написана задача приема данных с нового интерфейса CAN
This commit is contained in:
commit
8d47450c8c
|
|
@ -0,0 +1,55 @@
|
|||
//
|
||||
// Created by cfif on 21.02.2025.
|
||||
//
|
||||
#include "CanMain.h"
|
||||
#include "n32g45x_can.h"
|
||||
#include "SystemDelayInterface.h"
|
||||
#include "CanSerialPortFrame.h"
|
||||
#include "LoggerInterface.h"
|
||||
#include "string.h"
|
||||
|
||||
#define LOG_SIGN "CAN"
|
||||
#define LOGGER &env->slog->logger
|
||||
|
||||
void CanMain_Init(
|
||||
tCanMain *env,
|
||||
tSerialPortFrameIO *CanIO,
|
||||
tLoggerToSerialPort *slog
|
||||
) {
|
||||
env->CanIO = CanIO;
|
||||
env->slog = slog;
|
||||
|
||||
InitThreadBlock(env->T_can_Main, "CanMain", osPriorityNormal);
|
||||
}
|
||||
|
||||
void CanMainTask(tCanMain *env) {
|
||||
CanRxMessage canFrame;
|
||||
|
||||
uint8_t canTestData[8] = {'1', '1', '1', '1', '1', '1', '1', '1'};
|
||||
|
||||
for (;;) {
|
||||
|
||||
volatile uint16_t recv = env->CanIO->receive0(env->CanIO->env, (uint8_t *) &canFrame, 1, 1000);
|
||||
/*
|
||||
if (recv > 0) {
|
||||
volatile uint16_t r1cc = recv;
|
||||
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "%x:%x:%x:%x:%x:%x:%x:%x",
|
||||
canFrame.Data[0], canFrame.Data[1],
|
||||
canFrame.Data[2], canFrame.Data[3], canFrame.Data[4],
|
||||
canFrame.Data[5], canFrame.Data[6], canFrame.Data[7]);
|
||||
}
|
||||
*/
|
||||
|
||||
CanSerialPortFrameSetId(env->CanIO->env, 0x88);
|
||||
volatile uint16_t sent = env->CanIO->transmit(env->CanIO->env, (uint8_t *) canFrame.Data, 8, 300);
|
||||
|
||||
// SystemDelayMs(1000);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CanMain_Start(tCanMain *env) {
|
||||
ThreadBlock_Start(env->T_can_Main, env, CanMainTask);
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// Created by cfif on 21.02.2025.
|
||||
//
|
||||
|
||||
#ifndef UVEOS_ON_NATION_CANMAIN_H
|
||||
#define UVEOS_ON_NATION_CANMAIN_H
|
||||
|
||||
#include "CmsisRtosThreadUtils.h"
|
||||
#include "SerialPortFrameIO.h"
|
||||
#include "LoggerInterface.h"
|
||||
#include "LoggerToSerialPort.h"
|
||||
|
||||
typedef struct {
|
||||
tSerialPortFrameIO *CanIO;
|
||||
tLoggerToSerialPort *slog;
|
||||
|
||||
tStaticThreadBlock(512) T_can_Main;
|
||||
} tCanMain;
|
||||
|
||||
|
||||
void CanMain_Init(
|
||||
tCanMain *env,
|
||||
tSerialPortFrameIO *CanIO,
|
||||
tLoggerToSerialPort *slog
|
||||
);
|
||||
|
||||
void CanMain_Start(tCanMain *env);
|
||||
|
||||
#endif //UVEOS_ON_NATION_CANMAIN_H
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"cmake": {
|
||||
"inc_dirs": [
|
||||
"./"
|
||||
],
|
||||
"srcs": [
|
||||
"./**.c"
|
||||
]
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue