Написана задача приема данных с нового интерфейса CAN

This commit is contained in:
cfif 2025-02-24 10:59:50 +03:00
commit 8d47450c8c
3 changed files with 94 additions and 0 deletions

55
CanMain.c Normal file
View File

@ -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);
}

29
CanMain.h Normal file
View File

@ -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

10
modular.json Normal file
View File

@ -0,0 +1,10 @@
{
"cmake": {
"inc_dirs": [
"./"
],
"srcs": [
"./**.c"
]
}
}