串口ok
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* SPI_Bridge.h
|
||||
*
|
||||
* Created on: Jun 13, 2020
|
||||
* Author: matth
|
||||
*/
|
||||
|
||||
#ifndef __SPI_BRIDGE_H__
|
||||
#define __SPI_BRIDGE_H__
|
||||
|
||||
#include "SPIDevice.h"
|
||||
#include "main.h"
|
||||
#include <cmsis_os.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef SPI_Bridge_QUEUE_LEN
|
||||
# define SPI_Bridge_QUEUE_LEN (2048)
|
||||
#endif
|
||||
|
||||
#ifndef SPI_Bridge_BLOCK_LEN
|
||||
# define SPI_Bridge_BLOCK_LEN (64)
|
||||
#endif
|
||||
|
||||
#ifndef SPI_Bridge_UNPACK_LEN
|
||||
# define SPI_Bridge_UNPACK_LEN (512)
|
||||
#endif
|
||||
|
||||
typedef struct SPI_Bridge {
|
||||
SPI_DEV_t *hdev;
|
||||
osMutexId pack_mutex_id;
|
||||
|
||||
uint8_t queue_in[SPI_Bridge_QUEUE_LEN];
|
||||
uint16_t queue_in_hdr;
|
||||
uint16_t queue_in_tail;
|
||||
|
||||
uint8_t queue_out[SPI_Bridge_QUEUE_LEN];
|
||||
uint16_t queue_out_hdr;
|
||||
uint16_t queue_out_tail;
|
||||
|
||||
uint8_t buff[SPI_Bridge_BLOCK_LEN];
|
||||
uint8_t buff_in[SPI_Bridge_BLOCK_LEN];
|
||||
|
||||
int stage;
|
||||
size_t idx;
|
||||
size_t len;
|
||||
uint8_t sum;
|
||||
uint8_t id;
|
||||
uint8_t data[SPI_Bridge_UNPACK_LEN];
|
||||
|
||||
/* monitor */
|
||||
size_t error_cnt;
|
||||
size_t count_in;
|
||||
size_t count_out;
|
||||
size_t pkg_in;
|
||||
size_t pkg_out;
|
||||
size_t dia_in; /* diagram in */
|
||||
size_t dia_out; /* diagram out */
|
||||
size_t Bps_in;
|
||||
size_t Pps_in;
|
||||
size_t Dps_in;
|
||||
size_t Bps_out;
|
||||
size_t Pps_out;
|
||||
size_t Dps_out;
|
||||
|
||||
} SPI_Bridge_t;
|
||||
|
||||
void SPI_Bridge_init(SPI_Bridge_t *b, SPI_DEV_t *hdev,
|
||||
osMutexId pack_mutex);
|
||||
void SPI_Bridge_pack(SPI_Bridge_t *b, uint8_t id, uint8_t cmd[], size_t len,
|
||||
uint32_t millisec);
|
||||
int SPI_Bridge_unpack(SPI_Bridge_t *b);
|
||||
void SPI_Bridge_Master_TransmitReceive(SPI_Bridge_t *b, uint32_t millisec, uint32_t millisec_wait, uint32_t millisec_trans);
|
||||
void SPI_Bridge_Slave_TransmitReceive(SPI_Bridge_t *b, uint32_t millisec, uint32_t millisec_trans);
|
||||
|
||||
void SPI_Bridge_stats(SPI_Bridge_t *b);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __SPI_BRIDGE_H__ */
|
||||
Reference in New Issue
Block a user