SerialPort_GD32F450/Inc/SerialPortGiga.h

42 lines
1.0 KiB
C
Executable File

//
// Created by cfif on 16.09.22.
//
#ifndef SERIALPORT_SERIALPORT_GIGA_H
#define SERIALPORT_SERIALPORT_GIGA_H
#include "SerialPort.h"
#include "gd32f4xx.h"
#include "cmsis_os2.h"
#include "stdbool.h"
typedef struct {
uint32_t uart;
dma_channel_enum dma_channel;
dma_single_data_parameter_struct dma_init_struct;
uint8_t* dma_buf;
uint32_t offset;
osMessageQueueId_t rxDataQueue;
osMessageQueueId_t rxDataSnifferQueue;
} tSerialPortGiga;
void vSerialPortInit(
tSerialPortGiga *env,
uint32_t uart,
uint32_t rxBufferLength
);
void vSerialPortIrqProcessing(tSerialPortGiga *env);
void vSerialPortIrqProcessingDMA(tSerialPortGiga *env);
void vSerialPortIrqProcessingDMAloop(tSerialPortGiga *env, uint32_t len);
tSerialPortIO vSerialPortGetIo(tSerialPortGiga *env);
tSerialPortIO vSerialPortGetSnifferIo(tSerialPortGiga *env);
uint16_t vSerialPortTransmit(tSerialPortGiga *env, uint8_t *data, uint16_t size, uint32_t timeout);
#endif //SERIALPORT_SERIALPORT_GIGA_H